> ## 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.

# GPUdb

> GPUdb — Kinetica API

<div className="kinetica-jsdoc">
  <h1 className="page-title">Class: GPUdb</h1>

  <div className="section">
    <div className="header">
      <h2><span className="attribs"><span className="type-signature" /></span>GPUdb<span className="signature">(url, options<span className="signature-attributes">opt</span>)</span><span className="type-signature" /></h2>
      <div className="class-description">GPUdb API object that provides access to GPUdb server functions.</div>
    </div>

    <div className="article">
      <div className="container-overview">
        <h2>Constructor</h2>
        <h4 className="name" id="GPUdb"><span className="type-signature" />new GPUdb<span className="signature">(url, options<span className="signature-attributes">opt</span>)</span><span className="type-signature" /></h4>
        <div className="description"> Creates a GPUdb API object for the specified URL using the given options. Once created, all options are immutable; to use a different URL or change options, create a new instance. (Creating a new instance does not communicate with the server and should not cause performance concerns.) </div>
        <h5>Parameters:</h5>

        <table className="params">
          <thead>
            <tr>
              <th>Name</th>
              <th>Type</th>
              <th>Attributes</th>
              <th className="last">Description</th>
            </tr>
          </thead>

          <tbody>
            <tr>
              <td className="name"><code>url</code></td>
              <td className="type"> <span className="param-type">String</span> | <span className="param-type">Array.\<String></span> </td>

              <td className="attributes" />

              <td className="description last">The URL of the GPUdb server (e.g., <code>[http://hostname:9191](http://hostname:9191)</code>). May also be specified as a list of urls; all urls in the list must be well formed.</td>
            </tr>

            <tr>
              <td className="name"><code>options</code></td>
              <td className="type"> <span className="param-type">Object</span> </td>
              <td className="attributes"> \<optional><br /> </td>

              <td className="description last">
                A set of configurable options for the GPUdb API.
                <h6>Properties</h6>

                <table className="params">
                  <thead>
                    <tr>
                      <th>Name</th>
                      <th>Type</th>
                      <th>Attributes</th>
                      <th className="last">Description</th>
                    </tr>
                  </thead>

                  <tbody>
                    <tr>
                      <td className="name"><code>username</code></td>
                      <td className="type"> <span className="param-type">String</span> </td>
                      <td className="attributes"> \<optional><br /> </td>
                      <td className="description last">The username to be used for authentication to GPUdb. This username will be sent with every GPUdb request made via the API along with the specified password and may be used for authorization decisions by the server if it is so configured. If neither username nor password is specified, no authentication will be performed.</td>
                    </tr>

                    <tr>
                      <td className="name"><code>password</code></td>
                      <td className="type"> <span className="param-type">String</span> </td>
                      <td className="attributes"> \<optional><br /> </td>
                      <td className="description last">The password to be used for authentication to GPUdb. This password will be sent with every GPUdb request made via the API along with the specified username and may be used for authorization decisions by the server if it is so configured. If neither username nor password is specified, no authentication will be performed.</td>
                    </tr>

                    <tr>
                      <td className="name"><code>timeout</code></td>
                      <td className="type"> <span className="param-type">Number</span> </td>
                      <td className="attributes"> \<optional><br /> </td>
                      <td className="description last">The timeout value, in milliseconds, after which requests to GPUdb will be aborted. A timeout value of zero is interpreted as an infinite timeout. Note that timeout is not suppored for synchronous requests, which will not return until a response is received and cannot be aborted.</td>
                    </tr>

                    <tr>
                      <td className="name"><code>client\_name</code></td>
                      <td className="type"> <span className="param-type">String</span> </td>
                      <td className="attributes"> \<optional><br /> </td>
                      <td className="description last">The client application name to be included in the User-Agent header for HTTP requests. Both client\_name and client\_version must be set for them to be included in the User-Agent header.</td>
                    </tr>

                    <tr>
                      <td className="name"><code>client\_version</code></td>
                      <td className="type"> <span className="param-type">String</span> </td>
                      <td className="attributes"> \<optional><br /> </td>
                      <td className="description last">The client application version to be included in the User-Agent header for HTTP requests. Both client\_name and client\_version must be set for them to be included in the User-Agent header.</td>
                    </tr>
                  </tbody>
                </table>
              </td>
            </tr>
          </tbody>
        </table>

        <div className="dl details">
          <div className="dt tag-source">Source:</div>

          <div className="dd tag-source">
            <ul className="dummy">
              <li> , </li>
            </ul>
          </div>
        </div>
      </div>

      <h3 className="subsection-title">Classes</h3>

      <div className="dl">
        <div className="dt"><a href="/content/api/nodejs/GPUdb.FileHandler">FileHandler</a></div>

        <div className="dd" />

        <div className="dt"><a href="/content/api/nodejs/GPUdb.Type">Type</a></div>

        <div className="dd" />
      </div>

      <h3 className="subsection-title">Members</h3>
      <h4 className="name" id="END_OF_SET"><span className="type-signature">(readonly) </span>END\_OF\_SET<span className="type-signature"> :Number</span></h4>
      <div className="description"> Constant used with certain requests to indicate that the maximum allowed number of results should be returned. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">Number</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="api_version"><span className="type-signature">(readonly) </span>api\_version<span className="type-signature"> :String</span></h4>
      <div className="description"> The version number of the GPUdb JavaScript API. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">String</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="client_name"><span className="type-signature">(readonly) </span>client\_name<span className="type-signature"> :String</span></h4>
      <div className="description"> The client application name to be included in the User-Agent header for HTTP requests. Will be an empty string if none was provided to the <a href="/content/api/nodejs/GPUdb">GPUdb constructor</a>. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">String</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="client_version"><span className="type-signature">(readonly) </span>client\_version<span className="type-signature"> :String</span></h4>
      <div className="description"> The client application version to be included in the User-Agent header for HTTP requests. Will be an empty string if none was provided to the <a href="/content/api/nodejs/GPUdb">GPUdb constructor</a>. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">String</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="getCookie"><span className="type-signature">(readonly) </span>getCookie<span className="type-signature"> :function</span></h4>
      <div className="description"> Function to get request cookie </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">function</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="hostname"><span className="type-signature">(readonly) </span>hostname<span className="type-signature"> :String</span></h4>
      <div className="description"> The hostname of the current GPUdb server. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">String</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="oauth_token"><span className="type-signature">(readonly) </span>oauth\_token<span className="type-signature"> :String</span></h4>
      <div className="description"> The OAuth2 token used for authentication to GPUdb. Will be an empty string if none was provided to the <a href="/content/api/nodejs/GPUdb">GPUdb constructor</a>. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">String</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="parsedUrls"><span className="type-signature">(readonly) </span>parsedUrls<span className="type-signature"> :Array.\<ConnectionToken></span></h4>
      <div className="description"> The URLs of the GPUdb servers. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">Array.\<ConnectionToken></span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="password"><span className="type-signature">(readonly) </span>password<span className="type-signature"> :String</span></h4>
      <div className="description"> The password used for authentication to GPUdb. Will be an empty string if none was provided to the <a href="/content/api/nodejs/GPUdb">GPUdb constructor</a>. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">String</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="pathname"><span className="type-signature">(readonly) </span>pathname<span className="type-signature"> :String</span></h4>
      <div className="description"> The pathname of the current GPUdb server. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">String</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="port"><span className="type-signature">(readonly) </span>port<span className="type-signature"> :String</span></h4>
      <div className="description"> The port of the current GPUdb server. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">String</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="protocol"><span className="type-signature">(readonly) </span>protocol<span className="type-signature"> :String</span></h4>
      <div className="description"> The protocol of the current GPUdb server address. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">String</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="setCookie"><span className="type-signature">(readonly) </span>setCookie<span className="type-signature"> :function</span></h4>
      <div className="description"> Function to set responce cookie </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">function</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="timeout"><span className="type-signature">(readonly) </span>timeout<span className="type-signature"> :Number</span></h4>
      <div className="description"> The timeout value, in milliseconds, after which requests to GPUdb will be aborted. A timeout of zero is interpreted as an infinite timeout. Will be zero if none was provided to the <a href="/content/api/nodejs/GPUdb">GPUdb constructor</a>. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">Number</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="url"><span className="type-signature">(readonly) </span>url<span className="type-signature"> :String</span></h4>
      <div className="description"> The URL of the current GPUdb server. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">String</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="username"><span className="type-signature">(readonly) </span>username<span className="type-signature"> :String</span></h4>
      <div className="description"> The username used for authentication to GPUdb. Will be an empty string if none was provided to the <a href="/content/api/nodejs/GPUdb">GPUdb contructor</a>. </div>
      <h5>Type:</h5>

      <ul>
        <li> <span className="param-type">String</span> </li>
      </ul>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h3 className="subsection-title">Methods</h3>
      <h4 className="name" id="SqlIterator"><span className="type-signature" />SqlIterator<span className="signature">(sql, batchSize, sqlOptions)</span><span className="type-signature" /></h4>
      <div className="description"> A generator function to iterate over the records returned by executing an SQL statement passed as a parameter to the function. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>sql</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The SQL statement to execute</td>
          </tr>

          <tr>
            <td className="name"><code>batchSize</code></td>
            <td className="type"> <span className="param-type">number</span> </td>
            <td className="description last">The number of records to fetch in each batch, defaults to 10,000</td>
          </tr>

          <tr>
            <td className="name"><code>sqlOptions</code></td>
            <td className="type"> <span className="param-type">Map</span> </td>
            <td className="description last">A Map to pass in the SQL options</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="add_http_header"><span className="type-signature" />add\_http\_header<span className="signature">(header, header)</span><span className="type-signature" /></h4>

      <div className="description">
        Adds an HTTP header to the map of additional HTTP headers to send to the server with each endpoint request. If the header is already in the map, its value is replaced with the specified value. The user is not allowed to modify the following headers:

        <ul>
          <li> 'Accept' </li>
          <li> 'Authorization' </li>
          <li> 'Content-type' </li>
          <li> 'X-Kinetica-Group' </li>
        </ul>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>header</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The custom header to add.</td>
          </tr>

          <tr>
            <td className="name"><code>header</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The value for the custom header to add.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="admin_add_host"><span className="type-signature" />admin\_add\_host<span className="signature">(host\_address, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Adds a host to an existing cluster.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>host\_address</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">IP address of the host that will be added to the cluster. This host must have installed the same version of Kinetica as the cluster to which it is being added.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'dry\_run': If set to <code>true</code>, only validation checks will be performed. No host is added. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'accepts\_failover': If set to <code>true</code>, the host will accept processes (ranks, graph server, etc.) in the event of a failover on another node in the cluster. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'public\_address': The publicly-accessible IP address for the host being added, typically specified for clients using multi-head operations. This setting is required if any other host(s) in the cluster specify a public address. </li>
                <li>'host\_manager\_public\_url': The publicly-accessible full path URL to the host manager on the host being added, e.g., '[http://172.123.45.67:9300](http://172.123.45.67:9300)'. The default host manager port can be found in the <a href="/content/install/shared/ports/" target="_top">list of ports</a> used by Kinetica. </li>
                <li>'ram\_limit': The desired RAM limit for the host being added, i.e. the sum of RAM usage for all processes on the host will not be able to exceed this value. Supported units: K (thousand), KB (kilobytes), M (million), MB (megabytes), G (billion), GB (gigabytes); if no unit is provided, the value is assumed to be in bytes. For example, if <code>ram\_limit</code> is set to 10M, the resulting RAM limit is 10 million bytes. Set <code>ram\_limit</code> to -1 to have no RAM limit. </li>
                <li>'gpus': Comma-delimited list of GPU indices (starting at 1) that are eligible for running worker processes. If left blank, all GPUs on the host being added will be eligible. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_add_host_request"><span className="type-signature" />admin\_add\_host\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Adds a host to an existing cluster.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_add_ranks"><span className="type-signature" />admin\_add\_ranks<span className="signature">(hosts, config\_params, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Add one or more ranks to an existing Kinetica cluster. The new ranks will not contain any data initially (other than replicated tables) and will not be assigned any shards. To rebalance data and shards across the cluster, use <a href="/content/api/nodejs/GPUdb#admin_rebalance"><code>GPUdb#admin\_rebalance</code></a>.
        <p> The database must be offline for this operation, see <a href="/content/api/nodejs/GPUdb#admin_offline"><code>GPUdb#admin\_offline</code></a> </p>
        <p> For example, if attempting to add three new ranks (two ranks on host 172.123.45.67 and one rank on host 172.123.45.68) to a Kinetica cluster with additional configuration parameters: </p>
        <p> \* <code>hosts</code> would be an array including 172.123.45.67 in the first two indices (signifying two ranks being added to host 172.123.45.67) and 172.123.45.68 in the last index (signifying one rank being added to host 172.123.45.67) </p>
        <p> \* <code>config\_params</code> would be an array of maps, with each map corresponding to the ranks being added in <code>hosts</code>. The key of each map would be the configuration parameter name and the value would be the parameter's value, e.g. '{"{"}"rank.gpu":"1"{"}"}' </p>
        <p> This endpoint's processing includes copying all replicated table data to the new rank(s) and therefore could take a long time. The API call may time out if run directly. It is recommended to run this endpoint asynchronously via <a href="/content/api/nodejs/GPUdb#create_job"><code>GPUdb#create\_job</code></a>. </p>
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>hosts</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Array of host IP addresses (matching a hostN.address from the gpudb.conf file), or host identifiers (e.g. 'host0' from the gpudb.conf file), on which to add ranks to the cluster. The hosts must already be in the cluster. If needed beforehand, to add a new host to the cluster use <a href="/content/api/nodejs/GPUdb#admin_add_host"><code>GPUdb#admin\_add\_host</code></a>. Include the same entry as many times as there are ranks to add to the cluster, e.g., if two ranks on host 172.123.45.67 should be added, <code>hosts</code> could look like '\["172.123.45.67", "172.123.45.67"]'. All ranks will be added simultaneously, i.e. they're not added in the order of this array. Each entry in this array corresponds to the entry at the same index in the <code>config\_params</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>config\_params</code></td>
            <td className="type"> <span className="param-type">Array.\<Object></span> </td>
            <td className="description last">Array of maps containing configuration parameters to apply to the new ranks found in <code>hosts</code>. For example, '{"{"}"rank.gpu":"2", "tier.ram.rank.limit":"10000000000"{"}"}'. Currently, the available parameters are rank-specific parameters in the <a href="/content/config/#config-main-network" target="_top">Network</a>, <a href="/content/config/#config-main-hardware" target="_top">Hardware</a>, <a href="/content/config/#config-main-text-search" target="_top">Text Search</a>, and <a href="/content/config/#config-main-ram-tier" target="_top">RAM Tiered Storage</a> sections in the gpudb.conf file, with the key exception of the 'rankN.host' settings in the Network section that will be determined by <code>hosts</code> instead. Though many of these configuration parameters typically are affixed with 'rankN' in the gpudb.conf file (where N is the rank number), the 'N' should be omitted in <code>config\_params</code> as the new rank number(s) are not allocated until the ranks have been added to the cluster. Each entry in this array corresponds to the entry at the same index in the <code>hosts</code>. This array must either be completely empty or have the same number of elements as the <code>hosts</code>. An empty <code>config\_params</code> array will result in the new ranks being set with default parameters.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'dry\_run': If <code>true</code>, only validation checks will be performed. No ranks are added. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_add_ranks_request"><span className="type-signature" />admin\_add\_ranks\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Add one or more ranks to an existing Kinetica cluster. The new ranks will not contain any data initially (other than replicated tables) and will not be assigned any shards. To rebalance data and shards across the cluster, use <a href="/content/api/nodejs/GPUdb#admin_rebalance"><code>GPUdb#admin\_rebalance</code></a>.
        <p> The database must be offline for this operation, see <a href="/content/api/nodejs/GPUdb#admin_offline"><code>GPUdb#admin\_offline</code></a> </p>
        <p> For example, if attempting to add three new ranks (two ranks on host 172.123.45.67 and one rank on host 172.123.45.68) to a Kinetica cluster with additional configuration parameters: </p>
        <p> \* <code>hosts</code> would be an array including 172.123.45.67 in the first two indices (signifying two ranks being added to host 172.123.45.67) and 172.123.45.68 in the last index (signifying one rank being added to host 172.123.45.67) </p>
        <p> \* <code>config\_params</code> would be an array of maps, with each map corresponding to the ranks being added in <code>hosts</code>. The key of each map would be the configuration parameter name and the value would be the parameter's value, e.g. '{"{"}"rank.gpu":"1"{"}"}' </p>
        <p> This endpoint's processing includes copying all replicated table data to the new rank(s) and therefore could take a long time. The API call may time out if run directly. It is recommended to run this endpoint asynchronously via <a href="/content/api/nodejs/GPUdb#create_job"><code>GPUdb#create\_job</code></a>. </p>
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_alter_host"><span className="type-signature" />admin\_alter\_host<span className="signature">(host, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alter properties on an existing host in the cluster. Currently, the only property that can be altered is a hosts ability to accept failover processes. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>host</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Identifies the host this applies to. Can be the host address, or formatted as 'hostN' where N is the host number as specified in gpudb.conf.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'accepts\_failover': If set to <code>true</code>, the host will accept processes (ranks, graph server, etc.) in the event of a failover on another node in the cluster. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_alter_host_request"><span className="type-signature" />admin\_alter\_host\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alter properties on an existing host in the cluster. Currently, the only property that can be altered is a hosts ability to accept failover processes. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_alter_jobs"><span className="type-signature" />admin\_alter\_jobs<span className="signature">(job\_ids, action, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Perform the requested action on a list of one or more job(s). Based on the type of job and the current state of execution, the action may not be successfully executed. The final result of the attempted actions for each specified job is returned in the status array of the response. See <a href="/content/admin/job_manager/" target="_top">Job Manager</a> for more information. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>job\_ids</code></td>
            <td className="type"> <span className="param-type">Array.\<Number></span> </td>
            <td className="description last">Jobs to be modified.</td>
          </tr>

          <tr>
            <td className="name"><code>action</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Action to be performed on the jobs specified by job\_ids. Supported values:

              <ul>
                <li>'cancel' </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'job\_tag': Job tag returned in call to create the job. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_alter_jobs_request"><span className="type-signature" />admin\_alter\_jobs\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Perform the requested action on a list of one or more job(s). Based on the type of job and the current state of execution, the action may not be successfully executed. The final result of the attempted actions for each specified job is returned in the status array of the response. See <a href="/content/admin/job_manager/" target="_top">Job Manager</a> for more information. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_backup_begin"><span className="type-signature" />admin\_backup\_begin<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Prepares the system for a backup by closing all open file handles after allowing current active jobs to complete. When the database is in backup mode, queries that result in a disk write operation will be blocked until backup mode has been completed by using <a href="/content/api/nodejs/GPUdb#admin_backup_end"><code>GPUdb#admin\_backup\_end</code></a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_backup_begin_request"><span className="type-signature" />admin\_backup\_begin\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Prepares the system for a backup by closing all open file handles after allowing current active jobs to complete. When the database is in backup mode, queries that result in a disk write operation will be blocked until backup mode has been completed by using <a href="/content/api/nodejs/GPUdb#admin_backup_end"><code>GPUdb#admin\_backup\_end</code></a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_backup_end"><span className="type-signature" />admin\_backup\_end<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Restores the system to normal operating mode after a backup has completed, allowing any queries that were blocked to complete. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_backup_end_request"><span className="type-signature" />admin\_backup\_end\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Restores the system to normal operating mode after a backup has completed, allowing any queries that were blocked to complete. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_ha_offline"><span className="type-signature" />admin\_ha\_offline<span className="signature">(offline, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Pauses consumption of messages from other HA clusters to support data repair/recovery scenarios. In-flight queries may fail to replicate to other clusters in the ring when going offline. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>offline</code></td>
            <td className="type"> <span className="param-type">Boolean</span> </td>

            <td className="description last">
              Set to true if desired state is offline. Supported values:

              <ul>
                <li><code>true</code> </li>
                <li><code>false</code> </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_ha_offline_request"><span className="type-signature" />admin\_ha\_offline\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Pauses consumption of messages from other HA clusters to support data repair/recovery scenarios. In-flight queries may fail to replicate to other clusters in the ring when going offline. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_ha_refresh"><span className="type-signature" />admin\_ha\_refresh<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Restarts the HA processing on the given cluster as a mechanism of accepting breaking HA conf changes. Additionally the cluster is put into read-only while HA is restarting. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_ha_refresh_request"><span className="type-signature" />admin\_ha\_refresh\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Restarts the HA processing on the given cluster as a mechanism of accepting breaking HA conf changes. Additionally the cluster is put into read-only while HA is restarting. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_offline"><span className="type-signature" />admin\_offline<span className="signature">(offline, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Take the system offline. When the system is offline, no user operations can be performed with the exception of a system shutdown. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>offline</code></td>
            <td className="type"> <span className="param-type">Boolean</span> </td>

            <td className="description last">
              Set to true if desired state is offline. Supported values:

              <ul>
                <li><code>true</code> </li>
                <li><code>false</code> </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'flush\_to\_disk': Flush to disk when going offline. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_offline_request"><span className="type-signature" />admin\_offline\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Take the system offline. When the system is offline, no user operations can be performed with the exception of a system shutdown. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_rebalance"><span className="type-signature" />admin\_rebalance<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Rebalance the data in the cluster so that all nodes contain an equal number of records approximately and/or rebalance the shards to be equally distributed (as much as possible) across all the ranks.
        <p> The database must be offline for this operation, see <a href="/content/api/nodejs/GPUdb#admin_offline"><code>GPUdb#admin\_offline</code></a> </p>
        <p> \* If <a href="/content/api/nodejs/GPUdb#admin_rebalance"><code>GPUdb#admin\_rebalance</code></a> is invoked after a change is made to the cluster, e.g., a host was added or removed, <a href="/content/concepts/tables/#sharding" target="_top">sharded data</a> will be evenly redistributed across the cluster by number of shards per rank while unsharded data will be redistributed across the cluster by data size per rank </p>
        <p> \* If <a href="/content/api/nodejs/GPUdb#admin_rebalance"><code>GPUdb#admin\_rebalance</code></a> is invoked at some point when unsharded data (a.k.a. <a href="/content/concepts/tables/#random-sharding" target="_top">randomly-sharded</a>) in the cluster is unevenly distributed over time, sharded data will not move while unsharded data will be redistributed across the cluster by data size per rank </p>
        <p> NOTE: Replicated data will not move as a result of this call </p>
        <p> This endpoint's processing time depends on the amount of data in the system, thus the API call may time out if run directly. It is recommended to run this endpoint asynchronously via <a href="/content/api/nodejs/GPUdb#create_job"><code>GPUdb#create\_job</code></a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'rebalance\_sharded\_data': If <code>true</code>, <a href="/content/concepts/tables/#sharding" target="_top">sharded data</a> will be rebalanced approximately equally across the cluster. Note that for clusters with large amounts of sharded data, this data transfer could be time consuming and result in delayed query responses. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'rebalance\_unsharded\_data': If <code>true</code>, unsharded data (a.k.a. <a href="/content/concepts/tables/#random-sharding" target="_top">randomly-sharded</a>) will be rebalanced approximately equally across the cluster. Note that for clusters with large amounts of unsharded data, this data transfer could be time consuming and result in delayed query responses. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'table\_includes': Comma-separated list of unsharded table names to rebalance. Not applicable to sharded tables because they are always rebalanced. Cannot be used simultaneously with <code>table\_excludes</code>. This parameter is ignored if <code>rebalance\_unsharded\_data</code> is <code>false</code>. </li>
                <li>'table\_excludes': Comma-separated list of unsharded table names to not rebalance. Not applicable to sharded tables because they are always rebalanced. Cannot be used simultaneously with <code>table\_includes</code>. This parameter is ignored if <code>rebalance\_unsharded\_data</code> is <code>false</code>. </li>
                <li>'aggressiveness': Influences how much data is moved at a time during rebalance. A higher <code>aggressiveness</code> will complete the rebalance faster. A lower <code>aggressiveness</code> will take longer but allow for better interleaving between the rebalance and other queries. Valid values are constants from 1 (lowest) to 10 (highest). The default value is '10'. </li>

                <li>
                  'compact\_after\_rebalance': Perform compaction of deleted records once the rebalance completes to reclaim memory and disk space. Default is <code>true</code>, unless <code>repair\_incorrectly\_sharded\_data</code> is set to <code>true</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'compact\_only': If set to <code>true</code>, ignore rebalance options and attempt to perform compaction of deleted records to reclaim memory and disk space without rebalancing first. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'repair\_incorrectly\_sharded\_data': Scans for any data sharded incorrectly and re-routes the data to the correct location. Only necessary if <a href="/content/api/nodejs/GPUdb#admin_verify_db"><code>GPUdb#admin\_verify\_db</code></a> reports an error in sharding alignment. This can be done as part of a typical rebalance after expanding the cluster or in a standalone fashion when it is believed that data is sharded incorrectly somewhere in the cluster. Compaction will not be performed by default when this is enabled. If this option is set to <code>true</code>, the time necessary to rebalance and the memory used by the rebalance may increase. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_rebalance_request"><span className="type-signature" />admin\_rebalance\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Rebalance the data in the cluster so that all nodes contain an equal number of records approximately and/or rebalance the shards to be equally distributed (as much as possible) across all the ranks.
        <p> The database must be offline for this operation, see <a href="/content/api/nodejs/GPUdb#admin_offline"><code>GPUdb#admin\_offline</code></a> </p>
        <p> \* If <a href="/content/api/nodejs/GPUdb#admin_rebalance"><code>GPUdb#admin\_rebalance</code></a> is invoked after a change is made to the cluster, e.g., a host was added or removed, <a href="/content/concepts/tables/#sharding" target="_top">sharded data</a> will be evenly redistributed across the cluster by number of shards per rank while unsharded data will be redistributed across the cluster by data size per rank </p>
        <p> \* If <a href="/content/api/nodejs/GPUdb#admin_rebalance"><code>GPUdb#admin\_rebalance</code></a> is invoked at some point when unsharded data (a.k.a. <a href="/content/concepts/tables/#random-sharding" target="_top">randomly-sharded</a>) in the cluster is unevenly distributed over time, sharded data will not move while unsharded data will be redistributed across the cluster by data size per rank </p>
        <p> NOTE: Replicated data will not move as a result of this call </p>
        <p> This endpoint's processing time depends on the amount of data in the system, thus the API call may time out if run directly. It is recommended to run this endpoint asynchronously via <a href="/content/api/nodejs/GPUdb#create_job"><code>GPUdb#create\_job</code></a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_remove_host"><span className="type-signature" />admin\_remove\_host<span className="signature">(host, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Removes a host from an existing cluster. If the host to be removed has any ranks running on it, the ranks must be removed using <a href="/content/api/nodejs/GPUdb#admin_remove_ranks"><code>GPUdb#admin\_remove\_ranks</code></a> or manually switched over to a new host using <a href="/content/api/nodejs/GPUdb#admin_switchover"><code>GPUdb#admin\_switchover</code></a> prior to host removal. If the host to be removed has the graph server or SQL planner running on it, these must be manually switched over to a new host using <a href="/content/api/nodejs/GPUdb#admin_switchover"><code>GPUdb#admin\_switchover</code></a>.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>host</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Identifies the host this applies to. Can be the host address, or formatted as 'hostN' where N is the host number as specified in gpudb.conf.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'dry\_run': If set to <code>true</code>, only validation checks will be performed. No host is removed. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_remove_host_request"><span className="type-signature" />admin\_remove\_host\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Removes a host from an existing cluster. If the host to be removed has any ranks running on it, the ranks must be removed using <a href="/content/api/nodejs/GPUdb#admin_remove_ranks"><code>GPUdb#admin\_remove\_ranks</code></a> or manually switched over to a new host using <a href="/content/api/nodejs/GPUdb#admin_switchover"><code>GPUdb#admin\_switchover</code></a> prior to host removal. If the host to be removed has the graph server or SQL planner running on it, these must be manually switched over to a new host using <a href="/content/api/nodejs/GPUdb#admin_switchover"><code>GPUdb#admin\_switchover</code></a>.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_remove_ranks"><span className="type-signature" />admin\_remove\_ranks<span className="signature">(ranks, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Remove one or more ranks from an existing Kinetica cluster. All data will be rebalanced to other ranks before the rank(s) is removed unless the <code>rebalance\_sharded\_data</code> or <code>rebalance\_unsharded\_data</code> parameters are set to <code>false</code> in the <code>options</code>, in which case the corresponding <a href="/content/concepts/tables/#sharding" target="_top">sharded data</a> and/or unsharded data (a.k.a. <a href="/content/concepts/tables/#random-sharding" target="_top">randomly-sharded</a>) will be deleted.
        <p> The database must be offline for this operation, see <a href="/content/api/nodejs/GPUdb#admin_offline"><code>GPUdb#admin\_offline</code></a> </p>
        <p> This endpoint's processing time depends on the amount of data in the system, thus the API call may time out if run directly. It is recommended to run this endpoint asynchronously via <a href="/content/api/nodejs/GPUdb#create_job"><code>GPUdb#create\_job</code></a>. </p>
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>ranks</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Each array value designates one or more ranks to remove from the cluster. Values can be formatted as 'rankN' for a specific rank, 'hostN' (from the gpudb.conf file) to remove all ranks on that host, or the host IP address (hostN.address from the gpub.conf file) which also removes all ranks on that host. Rank 0 (the head rank) cannot be removed (but can be moved to another host using <a href="/content/api/nodejs/GPUdb#admin_switchover"><code>GPUdb#admin\_switchover</code></a>). At least one worker rank must be left in the cluster after the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'rebalance\_sharded\_data': If <code>true</code>, <a href="/content/concepts/tables/#sharding" target="_top">sharded data</a> will be rebalanced approximately equally across the cluster. Note that for clusters with large amounts of sharded data, this data transfer could be time consuming and result in delayed query responses. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'rebalance\_unsharded\_data': If <code>true</code>, unsharded data (a.k.a. <a href="/content/concepts/tables/#random-sharding" target="_top">randomly-sharded</a>) will be rebalanced approximately equally across the cluster. Note that for clusters with large amounts of unsharded data, this data transfer could be time consuming and result in delayed query responses. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'aggressiveness': Influences how much data is moved at a time during rebalance. A higher <code>aggressiveness</code> will complete the rebalance faster. A lower <code>aggressiveness</code> will take longer but allow for better interleaving between the rebalance and other queries. Valid values are constants from 1 (lowest) to 10 (highest). The default value is '10'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_remove_ranks_request"><span className="type-signature" />admin\_remove\_ranks\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Remove one or more ranks from an existing Kinetica cluster. All data will be rebalanced to other ranks before the rank(s) is removed unless the <code>rebalance\_sharded\_data</code> or <code>rebalance\_unsharded\_data</code> parameters are set to <code>false</code> in the <code>options</code>, in which case the corresponding <a href="/content/concepts/tables/#sharding" target="_top">sharded data</a> and/or unsharded data (a.k.a. <a href="/content/concepts/tables/#random-sharding" target="_top">randomly-sharded</a>) will be deleted.
        <p> The database must be offline for this operation, see <a href="/content/api/nodejs/GPUdb#admin_offline"><code>GPUdb#admin\_offline</code></a> </p>
        <p> This endpoint's processing time depends on the amount of data in the system, thus the API call may time out if run directly. It is recommended to run this endpoint asynchronously via <a href="/content/api/nodejs/GPUdb#create_job"><code>GPUdb#create\_job</code></a>. </p>
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_repair_table"><span className="type-signature" />admin\_repair\_table<span className="signature">(table\_names, table\_types, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Manually repair a corrupted table. Returns information about affected tables. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of tables to query. An asterisk returns all tables.</td>
          </tr>

          <tr>
            <td className="name"><code>table\_types</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">ID of the type per table.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'repair\_policy': Corrective action to take. Supported values:

                  <ul>
                    <li>'delete\_chunks': Deletes any corrupted chunks. </li>
                    <li>'shrink\_columns': Shrinks corrupted chunks to the shortest column. </li>
                    <li>'replay\_wal': Manually invokes write-ahead log (WAL) replay on the table. </li>
                    <li>'alter\_table': Reset columns modification after incomplete alter column. </li>
                  </ul>
                </li>

                <li>
                  'verify\_all': If <code>false</code> only table chunk data already known to be corrupted will be repaired. Otherwise the database will perform a full table scan to check for correctness. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_repair_table_request"><span className="type-signature" />admin\_repair\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Manually repair a corrupted table. Returns information about affected tables. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_send_alert"><span className="type-signature" />admin\_send\_alert<span className="signature">(message, label, log\_level, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Sends a user generated alert to the monitoring system. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>message</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Alert message body. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>label</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Label to add to alert message. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>log\_level</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Alert message logging criteria. Supported values:

              <ul>
                <li>'fatal' </li>
                <li>'error' </li>
                <li>'warn' </li>
                <li>'info' </li>
                <li>'debug' </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_send_alert_request"><span className="type-signature" />admin\_send\_alert\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Sends a user generated alert to the monitoring system. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_show_alerts"><span className="type-signature" />admin\_show\_alerts<span className="signature">(num\_alerts, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Requests a list of the most recent alerts. Returns lists of alert data, including timestamp and type. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>num\_alerts</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Number of most recent alerts to request. The response will include up to <code>num\_alerts</code> depending on how many alerts there are in the system. A value of 0 returns all stored alerts.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_show_alerts_request"><span className="type-signature" />admin\_show\_alerts\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Requests a list of the most recent alerts. Returns lists of alert data, including timestamp and type. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_show_cluster_operations"><span className="type-signature" />admin\_show\_cluster\_operations<span className="signature">(history\_index, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Requests the detailed status of the current operation (by default) or a prior cluster operation specified by <code>history\_index</code>. Returns details on the requested cluster operation.
        <p> The response will also indicate how many cluster operations are stored in the history. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>history\_index</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Indicates which cluster operation to retrieve. Use 0 for the most recent. The default value is 0.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_show_cluster_operations_request"><span className="type-signature" />admin\_show\_cluster\_operations\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Requests the detailed status of the current operation (by default) or a prior cluster operation specified by <code>history\_index</code>. Returns details on the requested cluster operation.
        <p> The response will also indicate how many cluster operations are stored in the history. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_show_jobs"><span className="type-signature" />admin\_show\_jobs<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Get a list of the current jobs in GPUdb. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'show\_async\_jobs': If <code>true</code>, then the completed async jobs are also included in the response. By default, once the async jobs are completed they are no longer included in the jobs list. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'show\_worker\_info': If <code>true</code>, then information is also returned from worker ranks. By default only status from the head rank is returned. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_show_jobs_request"><span className="type-signature" />admin\_show\_jobs\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Get a list of the current jobs in GPUdb. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_show_shards"><span className="type-signature" />admin\_show\_shards<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Show the mapping of shards to the corresponding rank and tom. The response message contains list of 16384 (total number of shards in the system) Rank and TOM numbers corresponding to each shard. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_show_shards_request"><span className="type-signature" />admin\_show\_shards\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Show the mapping of shards to the corresponding rank and tom. The response message contains list of 16384 (total number of shards in the system) Rank and TOM numbers corresponding to each shard. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_shutdown"><span className="type-signature" />admin\_shutdown<span className="signature">(exit\_type, authorization, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Exits the database server application. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>exit\_type</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Reserved for future use. User can pass an empty string.</td>
          </tr>

          <tr>
            <td className="name"><code>authorization</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">No longer used. User can pass an empty string.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_shutdown_request"><span className="type-signature" />admin\_shutdown\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Exits the database server application. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_switchover"><span className="type-signature" />admin\_switchover<span className="signature">(processes, destinations, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Manually switch over one or more processes to another host. Individual ranks or entire hosts may be moved to another host.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>processes</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Indicates the process identifier to switch over to another host. Options are 'hostN' and 'rankN' where 'N' corresponds to the number associated with a host or rank in the <a href="/content/config/#config-main-network" target="_top">Network</a> section of the gpudb.conf file; e.g., 'host\[N].address' or 'rank\[N].host'. If 'hostN' is provided, all processes on that host will be moved to another host. Each entry in this array will be switched over to the corresponding host entry at the same index in <code>destinations</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>destinations</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Indicates to which host to switch over each corresponding process given in <code>processes</code>. Each index must be specified as 'hostN' where 'N' corresponds to the number associated with a host or rank in the <a href="/content/config/#config-main-network" target="_top">Network</a> section of the gpudb.conf file; e.g., 'host\[N].address'. Each entry in this array will receive the corresponding process entry at the same index in <code>processes</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'dry\_run': If set to <code>true</code>, only validation checks will be performed. Nothing is switched over. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_switchover_request"><span className="type-signature" />admin\_switchover\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Manually switch over one or more processes to another host. Individual ranks or entire hosts may be moved to another host.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_verify_db"><span className="type-signature" />admin\_verify\_db<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Verify database is in a consistent state. When inconsistencies or errors are found, the verified\_ok flag in the response is set to false and the list of errors found is provided in the error\_list. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'rebuild\_on\_error': \[DEPRECATED] Use the Rebuild DB feature of GAdmin instead. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'verify\_nulls': When <code>true</code>, verifies that null values are set to zero. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'verify\_persist': When <code>true</code>, persistent objects will be compared against their state in memory and workers will be checked for orphaned table data in persist. To check for orphaned worker data, either set <code>concurrent\_safe</code> in <code>options</code> to <code>true</code> or place the database offline. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'concurrent\_safe': When <code>true</code>, allows this endpoint to be run safely with other concurrent database operations. Other operations may be slower while this is running. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'verify\_rank0': If <code>true</code>, compare rank0 table metadata against workers' metadata. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'delete\_orphaned\_tables': If <code>true</code>, orphaned table directories found on workers for which there is no corresponding metadata will be deleted. It is recommended to run this while the database is offline OR set <code>concurrent\_safe</code> in <code>options</code> to <code>true</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'verify\_orphaned\_tables\_only': If <code>true</code>, only the presence of orphaned table directories will be checked, all persistence and table consistency checks will be skipped. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'table\_includes': Comma-separated list of table names to include when verifying table consistency on wokers. Cannot be used simultaneously with <code>table\_excludes</code>. </li>
                <li>'table\_excludes': Comma-separated list of table names to exclude when verifying table consistency on wokers. Cannot be used simultaneously with <code>table\_includes</code>. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="admin_verify_db_request"><span className="type-signature" />admin\_verify\_db\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Verify database is in a consistent state. When inconsistencies or errors are found, the verified\_ok flag in the response is set to false and the list of errors found is provided in the error\_list. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_convex_hull"><span className="type-signature" />aggregate\_convex\_hull<span className="signature">(table\_name, x\_column\_name, y\_column\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates and returns the convex hull for the values in a table specified by <code>table\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of table on which the operation will be performed. Must be an existing table, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>x\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column containing the x coordinates of the points for the operation being performed.</td>
          </tr>

          <tr>
            <td className="name"><code>y\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column containing the y coordinates of the points for the operation being performed.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_convex_hull_request"><span className="type-signature" />aggregate\_convex\_hull\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates and returns the convex hull for the values in a table specified by <code>table\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_group_by"><span className="type-signature" />aggregate\_group\_by<span className="signature">(table\_name, column\_names, offset, limit, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Calculates unique combinations (groups) of values for the given columns in a given table or view and computes aggregates on each unique combination. This is somewhat analogous to an SQL-style SELECT...GROUP BY.
        <p> For aggregation details and examples, see <a href="/content/concepts/aggregation/" target="_top">Aggregation</a>. For limitations, see <a href="/content/concepts/aggregation/#limitations" target="_top">Aggregation Limitations</a>. </p>
        <p> Any column(s) can be grouped on, and all column types except unrestricted-length strings may be used for computing applicable aggregates. </p>
        <p> The results can be paged via the <code>offset</code> and <code>limit</code> parameters. For example, to get 10 groups with the largest counts the inputs would be: limit=10, options={"{"}"sort\_order":"descending", "sort\_by":"value"{"}"}. </p>
        <p> <code>options</code> can be used to customize behavior of this call e.g. filtering or sorting the results. </p>
        <p> To group by columns 'x' and 'y' and compute the number of objects within each group, use: column\_names=\['x','y','count(\*)']. </p>
        <p> To also compute the sum of 'z' over each group, use: column\_names=\['x','y','count(\*)','sum(z)']. </p>
        <p> Available <a href="/content/concepts/expressions/#aggregate-expressions" target="_top">aggregation functions</a> are: count(\*), sum, min, max, avg, mean, stddev, stddev\_pop, stddev\_samp, var, var\_pop, var\_samp, arg\_min, arg\_max and count\_distinct. </p>
        <p> Available grouping functions are <a href="/content/concepts/rollup/" target="_top">Rollup</a>, <a href="/content/concepts/cube/" target="_top">Cube</a>, and <a href="/content/concepts/grouping_sets/" target="_top">Grouping Sets</a> </p>
        <p> This service also provides support for <a href="/content/concepts/pivot/" target="_top">Pivot</a> operations. </p>
        <p> Filtering on aggregates is supported via expressions using <a href="/content/concepts/expressions/#aggregate-expressions" target="_top">aggregation functions</a> supplied to <code>having</code>. </p>
        <p> The response is returned as a dynamic schema. For details see: <a href="/content/api/concepts/#dynamic-schemas" target="_top">dynamic schemas documentation</a>. </p>
        <p> If a <code>result\_table</code> name is specified in the <code>options</code>, the results are stored in a new table with that name--no results are returned in the response. Both the table name and resulting column names must adhere to <a href="/content/concepts/tables/#table" target="_top">standard naming conventions</a>; column/aggregation expressions will need to be aliased. If the source table's <a href="/content/concepts/tables/#shard-keys" target="_top">shard key</a> is used as the grouping column(s) and all result records are selected (<code>offset</code> is 0 and <code>limit</code> is -9999), the result table will be sharded, in all other cases it will be replicated. Sorting will properly function only if the result table is replicated or if there is only one processing node and should not be relied upon in other cases. Not available when any of the values of <code>column\_names</code> is an unrestricted-length string. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of an existing table or view on which the operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of one or more column names, expressions, and aggregate expressions.</td>
          </tr>

          <tr>
            <td className="name"><code>offset</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the number of initial results to skip (this can be useful for paging through the results). The default value is 0. The minimum allowed value is 0. The maximum allowed value is MAX\_INT.</td>
          </tr>

          <tr>
            <td className="name"><code>limit</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the maximum number of results to be returned, or END\_OF\_SET (-9999) to indicate that the maximum number of results allowed by the server should be returned. The number of records returned will never exceed the server's own limit, defined by the <a href="/content/config/#config-main-general" target="_top">max\_get\_records\_size</a> parameter in the server configuration. Use <code>has\_more\_records</code> to see if more records exist in the result to be fetched, and <code>offset</code> and <code>limit</code> to request subsequent pages of results. The default value is -9999.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>result\_table</code>. If <code>result\_table\_persist</code> is <code>false</code> (or unspecified), then this is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_result\_table\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema as part of <code>result\_table</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema which is to contain the table specified in <code>result\_table</code>. If the schema provided is non-existent, it will be automatically created. </li>
                <li>'expression': Filter expression to apply to the table prior to computing the aggregate group by. </li>

                <li>
                  'pipelined\_expression\_evaluation': Evaluate the group-by during last JoinedSet filter plan step. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'having': Filter expression to apply to the aggregated results. </li>

                <li>
                  'sort\_order': \[DEPRECATED--use order\_by instead] String indicating how the returned values should be sorted - ascending or descending. Supported values:

                  <ul>
                    <li>'ascending': Indicates that the returned values should be sorted in ascending order. </li>
                    <li>'descending': Indicates that the returned values should be sorted in descending order. </li>
                  </ul>

                  The default value is 'ascending'.
                </li>

                <li>
                  'sort\_by': \[DEPRECATED--use order\_by instead] String determining how the results are sorted. Supported values:

                  <ul>
                    <li>'key': Indicates that the returned values should be sorted by key, which corresponds to the grouping columns. If you have multiple grouping columns (and are sorting by key), it will first sort the first grouping column, then the second grouping column, etc. </li>
                    <li>'value': Indicates that the returned values should be sorted by value, which corresponds to the aggregates. If you have multiple aggregates (and are sorting by value), it will first sort by the first aggregate, then the second aggregate, etc. </li>
                  </ul>

                  The default value is 'value'.
                </li>

                <li>'order\_by': Comma-separated list of the columns to be sorted by as well as the sort direction, e.g., 'timestamp asc, x desc'. The default value is ''. </li>
                <li>'strategy\_definition': The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression codec</a> for the result table's columns. </li>
                <li>'result\_table': The name of a table used to store the results, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Column names (group-by and aggregate fields) need to be given aliases e.g. \["FChar256 as fchar256", "sum(FDouble) as sfd"]. If present, no results are returned in the response. This option is not available if one of the grouping attributes is an unrestricted string (i.e.; not charN) type. </li>

                <li>
                  'result\_table\_persist': If <code>true</code>, then the result table specified in <code>result\_table</code> will be persisted and will not expire unless a <code>ttl</code> is specified. If <code>false</code>, then the result table will be an in-memory table and will expire unless a <code>ttl</code> is specified otherwise. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'result\_table\_force\_replicated': Force the result table to be replicated (ignores any sharding). Must be used in combination with the <code>result\_table</code> option. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'result\_table\_generate\_pk': If <code>true</code> then set a primary key for the result table. Must be used in combination with the <code>result\_table</code> option. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'result\_table\_generate\_soft\_pk': If <code>true</code> then set a soft primary key for the result table. Must be used in combination with the <code>result\_table</code> option. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the table specified in <code>result\_table</code>. </li>
                <li>'chunk\_size': Indicates the number of records per chunk to be used for the result table. Must be used in combination with the <code>result\_table</code> option. </li>
                <li>'chunk\_column\_max\_memory': Indicates the target maximum data size for each column in a chunk to be used for the result table. Must be used in combination with the <code>result\_table</code> option. </li>
                <li>'chunk\_max\_memory': Indicates the target maximum data size for all columns in a chunk to be used for the result table. Must be used in combination with the <code>result\_table</code> option. </li>
                <li>'create\_indexes': Comma-separated list of columns on which to create indexes on the result table. Must be used in combination with the <code>result\_table</code> option. </li>

                <li>
                  'partition\_type': <a href="/content/concepts/tables/#partitioning" target="_top">Partitioning</a> scheme to use for the result table. Supported values:

                  <ul>
                    <li>'RANGE': Use <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>. </li>
                    <li>'INTERVAL': Use <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>. </li>
                    <li>'LIST': Use <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>. </li>
                    <li>'HASH': Use <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>. </li>
                    <li>'SERIES': Use <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a>. </li>
                  </ul>
                </li>

                <li>'partition\_keys': Comma-separated list of partition keys, which are the columns or column expressions by which records will be assigned to partitions defined by <code>partition\_definitions</code>. </li>
                <li>'partition\_definitions': Comma-separated list of partition definitions, whose format depends on the choice of <code>partition\_type</code>. See <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>, or <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a> for example formats. </li>

                <li>
                  'is\_automatic\_partition': If <code>true</code>, a new partition will be created for values which don't fall into an existing partition. Currently only supported for <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitions</a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'view\_id': ID of view of which the result table will be a member. The default value is ''. </li>
                <li>'pivot': Pivot column. </li>
                <li>'pivot\_values': Comma-separated list of the values in the <code>pivot</code> column. The list provided will become the column header prefixes in the output. </li>
                <li>'grouping\_sets': Customize the grouping attribute sets to compute the aggregates. These sets can include ROLLUP or CUBE operators. The attribute sets should be enclosed in parentheses and can include composite attributes. All attributes specified in the grouping sets must present in the group-by attributes. </li>
                <li>'rollup': This option is used to specify the multilevel aggregates. </li>
                <li>'cube': This option is used to specify the multidimensional aggregates. </li>
                <li>'shard\_key': Comma-separated list of the columns to be sharded on; e.g. 'column1, column2'. The columns specified must be present in <code>column\_names</code>. If any alias is given for any column name, the alias must be used, rather than the original column name. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_group_by_request"><span className="type-signature" />aggregate\_group\_by\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Calculates unique combinations (groups) of values for the given columns in a given table or view and computes aggregates on each unique combination. This is somewhat analogous to an SQL-style SELECT...GROUP BY.
        <p> For aggregation details and examples, see <a href="/content/concepts/aggregation/" target="_top">Aggregation</a>. For limitations, see <a href="/content/concepts/aggregation/#limitations" target="_top">Aggregation Limitations</a>. </p>
        <p> Any column(s) can be grouped on, and all column types except unrestricted-length strings may be used for computing applicable aggregates. </p>
        <p> The results can be paged via the <code>offset</code> and <code>limit</code> parameters. For example, to get 10 groups with the largest counts the inputs would be: limit=10, options={"{"}"sort\_order":"descending", "sort\_by":"value"{"}"}. </p>
        <p> <code>options</code> can be used to customize behavior of this call e.g. filtering or sorting the results. </p>
        <p> To group by columns 'x' and 'y' and compute the number of objects within each group, use: column\_names=\['x','y','count(\*)']. </p>
        <p> To also compute the sum of 'z' over each group, use: column\_names=\['x','y','count(\*)','sum(z)']. </p>
        <p> Available <a href="/content/concepts/expressions/#aggregate-expressions" target="_top">aggregation functions</a> are: count(\*), sum, min, max, avg, mean, stddev, stddev\_pop, stddev\_samp, var, var\_pop, var\_samp, arg\_min, arg\_max and count\_distinct. </p>
        <p> Available grouping functions are <a href="/content/concepts/rollup/" target="_top">Rollup</a>, <a href="/content/concepts/cube/" target="_top">Cube</a>, and <a href="/content/concepts/grouping_sets/" target="_top">Grouping Sets</a> </p>
        <p> This service also provides support for <a href="/content/concepts/pivot/" target="_top">Pivot</a> operations. </p>
        <p> Filtering on aggregates is supported via expressions using <a href="/content/concepts/expressions/#aggregate-expressions" target="_top">aggregation functions</a> supplied to <code>having</code>. </p>
        <p> The response is returned as a dynamic schema. For details see: <a href="/content/api/concepts/#dynamic-schemas" target="_top">dynamic schemas documentation</a>. </p>
        <p> If a <code>result\_table</code> name is specified in the <code>options</code>, the results are stored in a new table with that name--no results are returned in the response. Both the table name and resulting column names must adhere to <a href="/content/concepts/tables/#table" target="_top">standard naming conventions</a>; column/aggregation expressions will need to be aliased. If the source table's <a href="/content/concepts/tables/#shard-keys" target="_top">shard key</a> is used as the grouping column(s) and all result records are selected (<code>offset</code> is 0 and <code>limit</code> is -9999), the result table will be sharded, in all other cases it will be replicated. Sorting will properly function only if the result table is replicated or if there is only one processing node and should not be relied upon in other cases. Not available when any of the values of <code>column\_names</code> is an unrestricted-length string. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_histogram"><span className="type-signature" />aggregate\_histogram<span className="signature">(table\_name, column\_name, start, end, interval, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Performs a histogram calculation given a table, a column, and an interval function. The <code>interval</code> is used to produce bins of that size and the result, computed over the records falling within each bin, is returned. For each bin, the start value is inclusive, but the end value is exclusive--except for the very last bin for which the end value is also inclusive. The value returned for each bin is the number of records in it, except when a column name is provided as a <code>value\_column</code>. In this latter case the sum of the values corresponding to the <code>value\_column</code> is used as the result instead. The total number of bins requested cannot exceed 10,000.
        <p> NOTE: The Kinetica instance being accessed must be running a CUDA (GPU-based) build to service a request that specifies a <code>value\_column</code>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the operation will be performed. Must be an existing table, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of a column or an expression of one or more column names over which the histogram will be calculated.</td>
          </tr>

          <tr>
            <td className="name"><code>start</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Lower end value of the histogram interval, inclusive.</td>
          </tr>

          <tr>
            <td className="name"><code>end</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Upper end value of the histogram interval, inclusive.</td>
          </tr>

          <tr>
            <td className="name"><code>interval</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">The size of each bin within the start and end parameters.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'value\_column': The name of the column to use when calculating the bin values (values are summed). The column must be a numerical type (int, double, long, float). </li>
                <li>'start': The start parameter for char types. </li>
                <li>'end': The end parameter for char types. </li>
                <li>'interval': The interval parameter for char types. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_histogram_request"><span className="type-signature" />aggregate\_histogram\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Performs a histogram calculation given a table, a column, and an interval function. The <code>interval</code> is used to produce bins of that size and the result, computed over the records falling within each bin, is returned. For each bin, the start value is inclusive, but the end value is exclusive--except for the very last bin for which the end value is also inclusive. The value returned for each bin is the number of records in it, except when a column name is provided as a <code>value\_column</code>. In this latter case the sum of the values corresponding to the <code>value\_column</code> is used as the result instead. The total number of bins requested cannot exceed 10,000.
        <p> NOTE: The Kinetica instance being accessed must be running a CUDA (GPU-based) build to service a request that specifies a <code>value\_column</code>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_k_means"><span className="type-signature" />aggregate\_k\_means<span className="signature">(table\_name, column\_names, k, tolerance, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        This endpoint runs the k-means algorithm - a heuristic algorithm that attempts to do k-means clustering. An ideal k-means clustering algorithm selects k points such that the sum of the mean squared distances of each member of the set to the nearest of the k points is minimized. The k-means algorithm however does not necessarily produce such an ideal cluster. It begins with a randomly selected set of k points and then refines the location of the points iteratively and settles to a local minimum. Various parameters and options are provided to control the heuristic search.
        <p> NOTE: The Kinetica instance being accessed must be running a CUDA (GPU-based) build to service this request. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the operation will be performed. Must be an existing table, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of column names on which the operation would be performed. If n columns are provided then each of the k result points will have n dimensions corresponding to the n columns.</td>
          </tr>

          <tr>
            <td className="name"><code>k</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">The number of mean points to be determined by the algorithm.</td>
          </tr>

          <tr>
            <td className="name"><code>tolerance</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Stop iterating when the distances between successive points is less than the given tolerance.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'whiten': When set to 1 each of the columns is first normalized by its stdv - default is not to whiten. </li>
                <li>'max\_iters': Number of times to try to hit the tolerance limit before giving up - default is 10. </li>
                <li>'num\_tries': Number of times to run the k-means algorithm with a different randomly selected starting points - helps avoid local minimum. Default is 1. </li>

                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>result\_table</code>. If <code>result\_table\_persist</code> is <code>false</code> (or unspecified), then this is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_result\_table\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'result\_table': The name of a table used to store the results, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. If this option is specified, the results are not returned in the response. </li>

                <li>
                  'result\_table\_persist': If <code>true</code>, then the result table specified in <code>result\_table</code> will be persisted and will not expire unless a <code>ttl</code> is specified. If <code>false</code>, then the result table will be an in-memory table and will expire unless a <code>ttl</code> is specified otherwise. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the table specified in <code>result\_table</code>. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_k_means_request"><span className="type-signature" />aggregate\_k\_means\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        This endpoint runs the k-means algorithm - a heuristic algorithm that attempts to do k-means clustering. An ideal k-means clustering algorithm selects k points such that the sum of the mean squared distances of each member of the set to the nearest of the k points is minimized. The k-means algorithm however does not necessarily produce such an ideal cluster. It begins with a randomly selected set of k points and then refines the location of the points iteratively and settles to a local minimum. Various parameters and options are provided to control the heuristic search.
        <p> NOTE: The Kinetica instance being accessed must be running a CUDA (GPU-based) build to service this request. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_min_max"><span className="type-signature" />aggregate\_min\_max<span className="signature">(table\_name, column\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates and returns the minimum and maximum values of a particular column in a table. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the operation will be performed. Must be an existing table, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of a column or an expression of one or more column on which the min-max will be calculated.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_min_max_geometry"><span className="type-signature" />aggregate\_min\_max\_geometry<span className="signature">(table\_name, column\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates and returns the minimum and maximum x- and y-coordinates of a particular geospatial geometry column in a table. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the operation will be performed. Must be an existing table, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of a geospatial geometry column on which the min-max will be calculated.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_min_max_geometry_request"><span className="type-signature" />aggregate\_min\_max\_geometry\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates and returns the minimum and maximum x- and y-coordinates of a particular geospatial geometry column in a table. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_min_max_request"><span className="type-signature" />aggregate\_min\_max\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates and returns the minimum and maximum values of a particular column in a table. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_statistics"><span className="type-signature" />aggregate\_statistics<span className="signature">(table\_name, column\_name, stats, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Calculates the requested statistics of the given column(s) in a given table.
        <p> The available statistics are: <code>count</code> (number of total objects), <code>mean</code>, <code>stdv</code> (standard deviation), <code>variance</code>, <code>skew</code>, <code>kurtosis</code>, <code>sum</code>, <code>min</code>, <code>max</code>, <code>weighted\_average</code>, <code>cardinality</code> (unique count), <code>estimated\_cardinality</code>, <code>percentile</code>, and <code>percentile\_rank</code>. </p>
        <p> Estimated cardinality is calculated by using the hyperloglog approximation technique. </p>
        <p> Percentiles and percentile ranks are approximate and are calculated using the t-digest algorithm. They must include the desired <code>percentile</code>/<code>percentile\_rank</code>. To compute multiple percentiles each value must be specified separately (i.e. 'percentile(75.0),percentile(99.0),percentile\_rank(1234.56),percentile\_rank(-5)'). </p>
        <p> A second, comma-separated value can be added to the <code>percentile</code> statistic to calculate percentile resolution, e.g., a 50th percentile with 200 resolution would be 'percentile(50,200)'. </p>
        <p> The weighted average statistic requires a weight column to be specified in <code>weight\_column\_name</code>. The weighted average is then defined as the sum of the products of <code>column\_name</code> times the <code>weight\_column\_name</code> values divided by the sum of the <code>weight\_column\_name</code> values. </p>
        <p> Additional columns can be used in the calculation of statistics via <code>additional\_column\_names</code>. Values in these columns will be included in the overall aggregate calculation--individual aggregates will not be calculated per additional column. For instance, requesting the <code>count</code> and <code>mean</code> of <code>column\_name</code> x and <code>additional\_column\_names</code> y and z, where x holds the numbers 1-10, y holds 11-20, and z holds 21-30, would return the total number of x, y, and z values (30), and the single average value across all x, y, and z values (15.5). </p>
        <p> The response includes a list of key/value pairs of each statistic requested and its corresponding value. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the statistics operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the primary column for which the statistics are to be calculated.</td>
          </tr>

          <tr>
            <td className="name"><code>stats</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Comma separated list of the statistics to calculate, e.g. "sum,mean". Supported values:

              <ul>
                <li>'count': Number of objects (independent of the given column(s)). </li>
                <li>'mean': Arithmetic mean (average), equivalent to sum/count. </li>
                <li>'stdv': Sample standard deviation (denominator is count-1). </li>
                <li>'variance': Unbiased sample variance (denominator is count-1). </li>
                <li>'skew': Skewness (third standardized moment). </li>
                <li>'kurtosis': Kurtosis (fourth standardized moment). </li>
                <li>'sum': Sum of all values in the column(s). </li>
                <li>'min': Minimum value of the column(s). </li>
                <li>'max': Maximum value of the column(s). </li>
                <li>'weighted\_average': Weighted arithmetic mean (using the option <code>weight\_column\_name</code> as the weighting column). </li>
                <li>'cardinality': Number of unique values in the column(s). </li>
                <li>'estimated\_cardinality': Estimate (via hyperloglog technique) of the number of unique values in the column(s). </li>
                <li>'percentile': Estimate (via t-digest) of the given percentile of the column(s) (percentile(50.0) will be an approximation of the median). Add a second, comma-separated value to calculate percentile resolution, e.g., 'percentile(75,150)'. </li>
                <li>'percentile\_rank': Estimate (via t-digest) of the percentile rank of the given value in the column(s) (if the given value is the median of the column(s), percentile\_rank(<median>) will return approximately 50.0). </median></li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'additional\_column\_names': A list of comma separated column names over which statistics can be accumulated along with the primary column. All columns listed and <code>column\_name</code> must be of the same type. Must not include the column specified in <code>column\_name</code> and no column can be listed twice. </li>
                <li>'weight\_column\_name': Name of column used as weighting attribute for the weighted average statistic. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_statistics_by_range"><span className="type-signature" />aggregate\_statistics\_by\_range<span className="signature">(table\_name, select\_expression, column\_name, value\_column\_name, stats, start, end, interval, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Divides the given set into bins and calculates statistics of the values of a value-column in each bin. The bins are based on the values of a given binning-column. The statistics that may be requested are mean, stdv (standard deviation), variance, skew, kurtosis, sum, min, max, first, last and weighted average. In addition to the requested statistics the count of total samples in each bin is returned. This counts vector is just the histogram of the column used to divide the set members into bins. The weighted average statistic requires a weight column to be specified in <code>weight\_column\_name</code>. The weighted average is then defined as the sum of the products of the value column times the weight column divided by the sum of the weight column.
        <p> There are two methods for binning the set members. In the first, which can be used for numeric valued binning-columns, a min, max and interval are specified. The number of bins, nbins, is the integer upper bound of (max-min)/interval. Values that fall in the range \[min+n\*interval,min+(n+1)\*interval) are placed in the nth bin where n ranges from 0..nbin-2. The final bin is \[min+(nbin-1)\*interval,max]. In the second method, <code>bin\_values</code> specifies a list of binning column values. Binning-columns whose value matches the nth member of the <code>bin\_values</code> list are placed in the nth bin. When a list is provided, the binning-column must be of type string or int. </p>
        <p> NOTE: The Kinetica instance being accessed must be running a CUDA (GPU-based) build to service this request. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the ranged-statistics operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>select\_expression</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">For a non-empty expression statistics are calculated for those records for which the expression is true. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the binning-column used to divide the set samples into bins.</td>
          </tr>

          <tr>
            <td className="name"><code>value\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the value-column for which statistics are to be computed.</td>
          </tr>

          <tr>
            <td className="name"><code>stats</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">A string of comma separated list of the statistics to calculate, e.g. 'sum,mean'. Available statistics: mean, stdv (standard deviation), variance, skew, kurtosis, sum.</td>
          </tr>

          <tr>
            <td className="name"><code>start</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">The lower bound of the binning-column.</td>
          </tr>

          <tr>
            <td className="name"><code>end</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">The upper bound of the binning-column.</td>
          </tr>

          <tr>
            <td className="name"><code>interval</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">The interval of a bin. Set members fall into bin i if the binning-column falls in the range \[start+interval\*i, start+interval\*(i+1)).</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'additional\_column\_names': A list of comma separated value-column names over which statistics can be accumulated along with the primary value\_column. </li>
                <li>'bin\_values': A list of comma separated binning-column values. Values that match the nth bin\_values value are placed in the nth bin. </li>
                <li>'weight\_column\_name': Name of the column used as weighting column for the weighted\_average statistic. </li>
                <li>'order\_column\_name': Name of the column used for candlestick charting techniques. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_statistics_by_range_request"><span className="type-signature" />aggregate\_statistics\_by\_range\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Divides the given set into bins and calculates statistics of the values of a value-column in each bin. The bins are based on the values of a given binning-column. The statistics that may be requested are mean, stdv (standard deviation), variance, skew, kurtosis, sum, min, max, first, last and weighted average. In addition to the requested statistics the count of total samples in each bin is returned. This counts vector is just the histogram of the column used to divide the set members into bins. The weighted average statistic requires a weight column to be specified in <code>weight\_column\_name</code>. The weighted average is then defined as the sum of the products of the value column times the weight column divided by the sum of the weight column.
        <p> There are two methods for binning the set members. In the first, which can be used for numeric valued binning-columns, a min, max and interval are specified. The number of bins, nbins, is the integer upper bound of (max-min)/interval. Values that fall in the range \[min+n\*interval,min+(n+1)\*interval) are placed in the nth bin where n ranges from 0..nbin-2. The final bin is \[min+(nbin-1)\*interval,max]. In the second method, <code>bin\_values</code> specifies a list of binning column values. Binning-columns whose value matches the nth member of the <code>bin\_values</code> list are placed in the nth bin. When a list is provided, the binning-column must be of type string or int. </p>
        <p> NOTE: The Kinetica instance being accessed must be running a CUDA (GPU-based) build to service this request. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_statistics_request"><span className="type-signature" />aggregate\_statistics\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Calculates the requested statistics of the given column(s) in a given table.
        <p> The available statistics are: <code>count</code> (number of total objects), <code>mean</code>, <code>stdv</code> (standard deviation), <code>variance</code>, <code>skew</code>, <code>kurtosis</code>, <code>sum</code>, <code>min</code>, <code>max</code>, <code>weighted\_average</code>, <code>cardinality</code> (unique count), <code>estimated\_cardinality</code>, <code>percentile</code>, and <code>percentile\_rank</code>. </p>
        <p> Estimated cardinality is calculated by using the hyperloglog approximation technique. </p>
        <p> Percentiles and percentile ranks are approximate and are calculated using the t-digest algorithm. They must include the desired <code>percentile</code>/<code>percentile\_rank</code>. To compute multiple percentiles each value must be specified separately (i.e. 'percentile(75.0),percentile(99.0),percentile\_rank(1234.56),percentile\_rank(-5)'). </p>
        <p> A second, comma-separated value can be added to the <code>percentile</code> statistic to calculate percentile resolution, e.g., a 50th percentile with 200 resolution would be 'percentile(50,200)'. </p>
        <p> The weighted average statistic requires a weight column to be specified in <code>weight\_column\_name</code>. The weighted average is then defined as the sum of the products of <code>column\_name</code> times the <code>weight\_column\_name</code> values divided by the sum of the <code>weight\_column\_name</code> values. </p>
        <p> Additional columns can be used in the calculation of statistics via <code>additional\_column\_names</code>. Values in these columns will be included in the overall aggregate calculation--individual aggregates will not be calculated per additional column. For instance, requesting the <code>count</code> and <code>mean</code> of <code>column\_name</code> x and <code>additional\_column\_names</code> y and z, where x holds the numbers 1-10, y holds 11-20, and z holds 21-30, would return the total number of x, y, and z values (30), and the single average value across all x, y, and z values (15.5). </p>
        <p> The response includes a list of key/value pairs of each statistic requested and its corresponding value. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_unique"><span className="type-signature" />aggregate\_unique<span className="signature">(table\_name, column\_name, offset, limit, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Returns all the unique values from a particular column (specified by <code>column\_name</code>) of a particular table or view (specified by <code>table\_name</code>). If <code>column\_name</code> is a numeric column, the values will be in <code>binary\_encoded\_response</code>. Otherwise if <code>column\_name</code> is a string column, the values will be in <code>json\_encoded\_response</code>. The results can be paged via <code>offset</code> and <code>limit</code> parameters.

        <p />

        <p> {"{"}"limit":"10","sort\_order":"descending"{"}"} </p>
        <p> The response is returned as a dynamic schema. For details see: <a href="/content/api/concepts/#dynamic-schemas" target="_top">dynamic schemas documentation</a>. </p>
        <p> If a <code>result\_table</code> name is specified in the <code>options</code>, the results are stored in a new table with that name--no results are returned in the response. Both the table name and resulting column name must adhere to <a href="/content/concepts/tables/#table" target="_top">standard naming conventions</a>; any column expression will need to be aliased. If the source table's <a href="/content/concepts/tables/#shard-keys" target="_top">shard key</a> is used as the <code>column\_name</code>, the result table will be sharded, in all other cases it will be replicated. Sorting will properly function only if the result table is replicated or if there is only one processing node and should not be relied upon in other cases. Not available if the value of <code>column\_name</code> is an unrestricted-length string. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of an existing table or view on which the operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column or an expression containing one or more column names on which the unique function would be applied.</td>
          </tr>

          <tr>
            <td className="name"><code>offset</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the number of initial results to skip (this can be useful for paging through the results). The default value is 0. The minimum allowed value is 0. The maximum allowed value is MAX\_INT.</td>
          </tr>

          <tr>
            <td className="name"><code>limit</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the maximum number of results to be returned, or END\_OF\_SET (-9999) to indicate that the maximum number of results allowed by the server should be returned. The number of records returned will never exceed the server's own limit, defined by the <a href="/content/config/#config-main-general" target="_top">max\_get\_records\_size</a> parameter in the server configuration. Use <code>has\_more\_records</code> to see if more records exist in the result to be fetched, and <code>offset</code> and <code>limit</code> to request subsequent pages of results. The default value is -9999.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>result\_table</code>. If <code>result\_table\_persist</code> is <code>false</code> (or unspecified), then this is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_result\_table\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema as part of <code>result\_table</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema which is to contain the table specified in <code>result\_table</code>. If the schema provided is non-existent, it will be automatically created. </li>
                <li>'expression': Filter expression to apply to the table. </li>

                <li>
                  'sort\_order': String indicating how the returned values should be sorted. Supported values:

                  <ul>
                    <li>'ascending' </li>
                    <li>'descending' </li>
                  </ul>

                  The default value is 'ascending'.
                </li>

                <li>'order\_by': Comma-separated list of the columns to be sorted by as well as the sort direction, e.g., 'timestamp asc, x desc'. The default value is ''. </li>
                <li>'result\_table': The name of the table used to store the results, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. If present, no results are returned in the response. Not available if <code>column\_name</code> is an unrestricted-length string. </li>

                <li>
                  'result\_table\_persist': If <code>true</code>, then the result table specified in <code>result\_table</code> will be persisted and will not expire unless a <code>ttl</code> is specified. If <code>false</code>, then the result table will be an in-memory table and will expire unless a <code>ttl</code> is specified otherwise. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'result\_table\_force\_replicated': Force the result table to be replicated (ignores any sharding). Must be used in combination with the <code>result\_table</code> option. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'result\_table\_generate\_pk': If <code>true</code> then set a primary key for the result table. Must be used in combination with the <code>result\_table</code> option. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the table specified in <code>result\_table</code>. </li>
                <li>'chunk\_size': Indicates the number of records per chunk to be used for the result table. Must be used in combination with the <code>result\_table</code> option. </li>
                <li>'chunk\_column\_max\_memory': Indicates the target maximum data size for each column in a chunk to be used for the result table. Must be used in combination with the <code>result\_table</code> option. </li>
                <li>'chunk\_max\_memory': Indicates the target maximum data size for all columns in a chunk to be used for the result table. Must be used in combination with the <code>result\_table</code> option. </li>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression codec</a> for the result table's columns. </li>
                <li>'view\_id': ID of view of which the result table will be a member. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_unique_request"><span className="type-signature" />aggregate\_unique\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Returns all the unique values from a particular column (specified by <code>column\_name</code>) of a particular table or view (specified by <code>table\_name</code>). If <code>column\_name</code> is a numeric column, the values will be in <code>binary\_encoded\_response</code>. Otherwise if <code>column\_name</code> is a string column, the values will be in <code>json\_encoded\_response</code>. The results can be paged via <code>offset</code> and <code>limit</code> parameters.

        <p />

        <p> {"{"}"limit":"10","sort\_order":"descending"{"}"} </p>
        <p> The response is returned as a dynamic schema. For details see: <a href="/content/api/concepts/#dynamic-schemas" target="_top">dynamic schemas documentation</a>. </p>
        <p> If a <code>result\_table</code> name is specified in the <code>options</code>, the results are stored in a new table with that name--no results are returned in the response. Both the table name and resulting column name must adhere to <a href="/content/concepts/tables/#table" target="_top">standard naming conventions</a>; any column expression will need to be aliased. If the source table's <a href="/content/concepts/tables/#shard-keys" target="_top">shard key</a> is used as the <code>column\_name</code>, the result table will be sharded, in all other cases it will be replicated. Sorting will properly function only if the result table is replicated or if there is only one processing node and should not be relied upon in other cases. Not available if the value of <code>column\_name</code> is an unrestricted-length string. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_unpivot"><span className="type-signature" />aggregate\_unpivot<span className="signature">(table\_name, column\_names, variable\_column\_name, value\_column\_name, pivoted\_columns, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Rotate the column values into rows values.
        <p> For unpivot details and examples, see <a href="/content/concepts/unpivot/" target="_top">Unpivot</a>. For limitations, see <a href="/content/concepts/unpivot/#limitations" target="_top">Unpivot Limitations</a>. </p>
        <p> Unpivot is used to normalize tables that are built for cross tabular reporting purposes. The unpivot operator rotates the column values for all the pivoted columns. A variable column, value column and all columns from the source table except the unpivot columns are projected into the result table. The variable column and value columns in the result table indicate the pivoted column name and values respectively. </p>
        <p> The response is returned as a dynamic schema. For details see: <a href="/content/api/concepts/#dynamic-schemas" target="_top">dynamic schemas documentation</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the operation will be performed. Must be an existing table/view, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of column names or expressions. A wildcard '\*' can be used to include all the non-pivoted columns from the source table.</td>
          </tr>

          <tr>
            <td className="name"><code>variable\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Specifies the variable/parameter column name. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>value\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Specifies the value column name. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>pivoted\_columns</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of one or more values typically the column names of the input table. All the columns in the source table must have the same data type.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>result\_table</code>. If <code>result\_table\_persist</code> is <code>false</code> (or unspecified), then this is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_result\_table\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema as part of <code>result\_table</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema which is to contain the table specified in <code>result\_table</code>. If the schema is non-existent, it will be automatically created. </li>
                <li>'result\_table': The name of a table used to store the results, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. If present, no results are returned in the response. </li>

                <li>
                  'result\_table\_persist': If <code>true</code>, then the result table specified in <code>result\_table</code> will be persisted and will not expire unless a <code>ttl</code> is specified. If <code>false</code>, then the result table will be an in-memory table and will expire unless a <code>ttl</code> is specified otherwise. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'expression': Filter expression to apply to the table prior to unpivot processing. </li>
                <li>'order\_by': Comma-separated list of the columns to be sorted by; e.g. 'timestamp asc, x desc'. The columns specified must be present in input table. If any alias is given for any column name, the alias must be used, rather than the original column name. The default value is ''. </li>
                <li>'chunk\_size': Indicates the number of records per chunk to be used for the result table. Must be used in combination with the <code>result\_table</code> option. </li>
                <li>'chunk\_column\_max\_memory': Indicates the target maximum data size for each column in a chunk to be used for the result table. Must be used in combination with the <code>result\_table</code> option. </li>
                <li>'chunk\_max\_memory': Indicates the target maximum data size for all columns in a chunk to be used for the result table. Must be used in combination with the <code>result\_table</code> option. </li>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression codec</a> for the result table's columns. </li>
                <li>'limit': The number of records to keep. The default value is ''. </li>
                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the table specified in <code>result\_table</code>. </li>
                <li>'view\_id': View this result table is part of. The default value is ''. </li>
                <li>'create\_indexes': Comma-separated list of columns on which to create indexes on the table specified in <code>result\_table</code>. The columns specified must be present in output column names. If any alias is given for any column name, the alias must be used, rather than the original column name. </li>

                <li>
                  'result\_table\_force\_replicated': Force the result table to be replicated (ignores any sharding). Must be used in combination with the <code>result\_table</code> option. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="aggregate_unpivot_request"><span className="type-signature" />aggregate\_unpivot\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Rotate the column values into rows values.
        <p> For unpivot details and examples, see <a href="/content/concepts/unpivot/" target="_top">Unpivot</a>. For limitations, see <a href="/content/concepts/unpivot/#limitations" target="_top">Unpivot Limitations</a>. </p>
        <p> Unpivot is used to normalize tables that are built for cross tabular reporting purposes. The unpivot operator rotates the column values for all the pivoted columns. A variable column, value column and all columns from the source table except the unpivot columns are projected into the result table. The variable column and value columns in the result table indicate the pivoted column name and values respectively. </p>
        <p> The response is returned as a dynamic schema. For details see: <a href="/content/api/concepts/#dynamic-schemas" target="_top">dynamic schemas documentation</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_backup"><span className="type-signature" />alter\_backup<span className="signature">(backup\_name, action, value, datasink\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters an existing database <a href="/content/admin/backup_restore/#database-backup" target="_top">backup</a>, accessible via the <a href="/content/concepts/data_sinks/" target="_top">data sink</a> specified by <code>datasink\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>backup\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the backup to be altered.</td>
          </tr>

          <tr>
            <td className="name"><code>action</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Operation to be applied. Supported values:

              <ul>
                <li>'checksum': Calculate checksum for backed-up files. </li>
                <li>'ddl\_only': Whether or not to only save DDL and not back up table data, when taking future snapshots; set <code>value</code> to 'true' or 'false' for DDL only or DDL and table data, respectively. </li>
                <li>'max\_incremental\_backups\_to\_keep': Maximum number of incremental snapshots to keep, when taking future snapshots; set <code>value</code> to the number of snapshots to keep. </li>
                <li>'merge': Merges all snapshots within a backup and creates a single full snapshot. </li>
                <li>'purge': Deletes a snapshot from a backup; set <code>value</code> to the snapshot ID to purge. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>value</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Value of the modification, depending on <code>action</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>datasink\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Data sink through which the backup is accessible.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'comment': Comments to store with the backup. </li>

                <li>
                  'dry\_run': Whether or not to perform a dry run of a backup alteration. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_backup_request"><span className="type-signature" />alter\_backup\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters an existing database <a href="/content/admin/backup_restore/#database-backup" target="_top">backup</a>, accessible via the <a href="/content/concepts/data_sinks/" target="_top">data sink</a> specified by <code>datasink\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_credential"><span className="type-signature" />alter\_credential<span className="signature">(credential\_name, credential\_updates\_map, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alter the properties of an existing <a href="/content/concepts/credentials/" target="_top">credential</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>credential\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the credential to be altered. Must be an existing credential.</td>
          </tr>

          <tr>
            <td className="name"><code>credential\_updates\_map</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Map containing the properties of the credential to be updated. Error if empty.

              <ul>
                <li>
                  'type': New type for the credential. Supported values:

                  <ul>
                    <li>'aws\_access\_key' </li>
                    <li>'aws\_iam\_role' </li>
                    <li>'azure\_ad' </li>
                    <li>'azure\_oauth' </li>
                    <li>'azure\_sas' </li>
                    <li>'azure\_storage\_key' </li>
                    <li>'docker' </li>
                    <li>'gcs\_service\_account\_id' </li>
                    <li>'gcs\_service\_account\_keys' </li>
                    <li>'hdfs' </li>
                    <li>'kafka' </li>
                  </ul>
                </li>

                <li>'identity': New user for the credential. </li>
                <li>'secret': New password for the credential. </li>
                <li>'schema\_name': Updates the schema name. If <code>schema\_name</code> doesn't exist, an error will be thrown. If <code>schema\_name</code> is empty, then the user's default schema will be used. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_credential_request"><span className="type-signature" />alter\_credential\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alter the properties of an existing <a href="/content/concepts/credentials/" target="_top">credential</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_datasink"><span className="type-signature" />alter\_datasink<span className="signature">(name, datasink\_updates\_map, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters the properties of an existing <a href="/content/concepts/data_sinks/" target="_top">data sink</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the data sink to be altered. Must be an existing data sink.</td>
          </tr>

          <tr>
            <td className="name"><code>datasink\_updates\_map</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Map containing the properties of the data sink to be updated. Error if empty.

              <ul>
                <li>'destination': Destination for the output data in format 'destination\_type://path\[:port]'. Supported destination types are 'azure', 'gcs', 'hdfs', 'http', 'https', 'jdbc', 'kafka', and 's3'. </li>
                <li>'connection\_timeout': Timeout in seconds for connecting to this sink. </li>
                <li>'wait\_timeout': Timeout in seconds for waiting for a response from this sink. </li>
                <li>'credential': Name of the <a href="/content/concepts/credentials/" target="_top">credential</a> object to be used in this data sink. </li>
                <li>'s3\_bucket\_name': Name of the Amazon S3 bucket to use as the data sink. </li>
                <li>'s3\_region': Name of the Amazon S3 region where the given bucket is located. </li>

                <li>
                  's3\_verify\_ssl': Whether to verify SSL connections. Supported values:

                  <ul>
                    <li>'true': Connect with SSL verification. </li>
                    <li>'false': Connect without verifying the SSL connection; for testing purposes, bypassing TLS errors, self-signed certificates, etc. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  's3\_use\_virtual\_addressing': Whether to use virtual addressing when referencing the Amazon S3 sink. Supported values:

                  <ul>
                    <li>'true': The requests URI should be specified in virtual-hosted-style format where the bucket name is part of the domain name in the URL. </li>
                    <li>'false': Use path-style URI for requests. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'s3\_aws\_role\_arn': Amazon IAM Role ARN which has required S3 permissions that can be assumed for the given S3 IAM user. </li>
                <li>'s3\_encryption\_customer\_algorithm': Customer encryption algorithm used encrypting data. </li>
                <li>'s3\_encryption\_customer\_key': Customer encryption key to encrypt or decrypt data. </li>
                <li>'s3\_encryption\_type': Server side encryption type. </li>
                <li>'s3\_kms\_key\_id': KMS key. </li>
                <li>'hdfs\_kerberos\_keytab': Kerberos keytab file location for the given HDFS user. This may be a KIFS file. </li>
                <li>'hdfs\_delegation\_token': Delegation token for the given HDFS user. </li>

                <li>
                  'hdfs\_use\_kerberos': Use kerberos authentication for the given HDFS cluster. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'azure\_storage\_account\_name': Name of the Azure storage account to use as the data sink, this is valid only if tenant\_id is specified. </li>
                <li>'azure\_container\_name': Name of the Azure storage container to use as the data sink. </li>
                <li>'azure\_tenant\_id': Active Directory tenant ID (or directory ID). </li>
                <li>'azure\_sas\_token': Shared access signature token for Azure storage account to use as the data sink. </li>
                <li>'azure\_oauth\_token': OAuth token to access given storage container. </li>

                <li>
                  'azure\_use\_virtual\_addressing': Whether to use virtual addressing when referencing the Azure source. Supported values:

                  <ul>
                    <li>'true': The requests URI should be specified in virtual-hosted-style format where the bucket name is part of the domain name in the URL. </li>
                    <li>'false': Use path-style URI for requests. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'gcs\_bucket\_name': Name of the Google Cloud Storage bucket to use as the data sink. </li>
                <li>'gcs\_project\_id': Name of the Google Cloud project to use as the data sink. </li>
                <li>'gcs\_service\_account\_keys': Google Cloud service account keys to use for authenticating the data sink. </li>
                <li>'jdbc\_driver\_jar\_path': JDBC driver jar file location. This may be a KIFS file. </li>
                <li>'jdbc\_driver\_class\_name': Name of the JDBC driver class. </li>
                <li>'kafka\_url': The publicly-accessible full path URL to the kafka broker, e.g., '[http://172.123.45.67:9300](http://172.123.45.67:9300)'. </li>
                <li>'kafka\_topic\_name': Name of the Kafka topic to use for this data sink, if it references a Kafka broker. </li>

                <li>
                  'anonymous': Create an anonymous connection to the storage provider--DEPRECATED: this is now the default. Specify use\_managed\_credentials for non-anonymous connection. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'use\_managed\_credentials': When no credentials are supplied, we use anonymous access by default. If this is set, we will use cloud provider user settings. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'use\_https': Use HTTPS to connect to datasink if true, otherwise use HTTP. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'max\_batch\_size': Maximum number of records per notification message. The default value is '1'. </li>
                <li>'max\_message\_size': Maximum size in bytes of each notification message. The default value is '1000000'. </li>

                <li>
                  'json\_format': The desired format of JSON encoded notifications message. Supported values:

                  <ul>
                    <li>'flat': A single record is returned per message. </li>
                    <li>'nested': Records are returned as an array per message. </li>
                  </ul>

                  The default value is 'flat'.
                </li>

                <li>
                  'skip\_validation': Bypass validation of connection to this data sink. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'schema\_name': Updates the schema name. If <code>schema\_name</code> doesn't exist, an error will be thrown. If <code>schema\_name</code> is empty, then the user's default schema will be used. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_datasink_request"><span className="type-signature" />alter\_datasink\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters the properties of an existing <a href="/content/concepts/data_sinks/" target="_top">data sink</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_datasource"><span className="type-signature" />alter\_datasource<span className="signature">(name, datasource\_updates\_map, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters the properties of an existing <a href="/content/concepts/data_sources/" target="_top">data source</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the data source to be altered. Must be an existing data source.</td>
          </tr>

          <tr>
            <td className="name"><code>datasource\_updates\_map</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Map containing the properties of the data source to be updated. Error if empty.

              <ul>
                <li>'location': Location of the remote storage in 'storage\_provider\_type://\[storage\_path\[:storage\_port]]' format. Supported storage provider types are 'azure', 'gcs', 'hdfs', 'jdbc', 'kafka', 'confluent', and 's3'. </li>
                <li>'user\_name': Name of the remote system user; may be an empty string. </li>
                <li>'password': Password for the remote system user; may be an empty string. </li>

                <li>
                  'skip\_validation': Bypass validation of connection to remote source. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'connection\_timeout': Timeout in seconds for connecting to this storage provider. </li>
                <li>'wait\_timeout': Timeout in seconds for reading from this storage provider. </li>
                <li>'credential': Name of the <a href="/content/concepts/credentials" target="_top">credential</a> object to be used in data source. </li>
                <li>'s3\_bucket\_name': Name of the Amazon S3 bucket to use as the data source. </li>
                <li>'s3\_region': Name of the Amazon S3 region where the given bucket is located. </li>

                <li>
                  's3\_verify\_ssl': Whether to verify SSL connections. Supported values:

                  <ul>
                    <li>'true': Connect with SSL verification. </li>
                    <li>'false': Connect without verifying the SSL connection; for testing purposes, bypassing TLS errors, self-signed certificates, etc. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  's3\_use\_virtual\_addressing': Whether to use virtual addressing when referencing the Amazon S3 source. Supported values:

                  <ul>
                    <li>'true': The requests URI should be specified in virtual-hosted-style format where the bucket name is part of the domain name in the URL. </li>
                    <li>'false': Use path-style URI for requests. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'s3\_aws\_role\_arn': Amazon IAM Role ARN which has required S3 permissions that can be assumed for the given S3 IAM user. </li>
                <li>'s3\_encryption\_customer\_algorithm': Customer encryption algorithm used encrypting data. </li>
                <li>'s3\_encryption\_customer\_key': Customer encryption key to encrypt or decrypt data. </li>
                <li>'hdfs\_kerberos\_keytab': Kerberos keytab file location for the given HDFS user. This may be a KIFS file. </li>
                <li>'hdfs\_delegation\_token': Delegation token for the given HDFS user. </li>

                <li>
                  'hdfs\_use\_kerberos': Use kerberos authentication for the given HDFS cluster. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'azure\_storage\_account\_name': Name of the Azure storage account to use as the data source, this is valid only if tenant\_id is specified. </li>
                <li>'azure\_container\_name': Name of the Azure storage container to use as the data source. </li>
                <li>'azure\_tenant\_id': Active Directory tenant ID (or directory ID). </li>
                <li>'azure\_sas\_token': Shared access signature token for Azure storage account to use as the data source. </li>
                <li>'azure\_oauth\_token': OAuth token to access given storage container. </li>

                <li>
                  'azure\_use\_virtual\_addressing': Whether to use virtual addressing when referencing the Azure source. Supported values:

                  <ul>
                    <li>'true': The requests URI should be specified in virtual-hosted-style format where the bucket name is part of the domain name in the URL. </li>
                    <li>'false': Use path-style URI for requests. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'gcs\_bucket\_name': Name of the Google Cloud Storage bucket to use as the data source. </li>
                <li>'gcs\_project\_id': Name of the Google Cloud project to use as the data source. </li>
                <li>'gcs\_service\_account\_keys': Google Cloud service account keys to use for authenticating the data source. </li>
                <li>'jdbc\_driver\_jar\_path': JDBC driver jar file location. This may be a KIFS file. </li>
                <li>'jdbc\_driver\_class\_name': Name of the JDBC driver class. </li>
                <li>'kafka\_url': The publicly-accessible full path URL to the Kafka broker, e.g., '[http://172.123.45.67:9300](http://172.123.45.67:9300)'. </li>
                <li>'kafka\_topic\_name': Name of the Kafka topic to use as the data source. </li>

                <li>
                  'anonymous': Create an anonymous connection to the storage provider--DEPRECATED: this is now the default. Specify use\_managed\_credentials for non-anonymous connection. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'use\_managed\_credentials': When no credentials are supplied, we use anonymous access by default. If this is set, we will use cloud provider user settings. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'use\_https': Use HTTPS to connect to datasource if true, otherwise use HTTP. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'schema\_name': Updates the schema name. If <code>schema\_name</code> doesn't exist, an error will be thrown. If <code>schema\_name</code> is empty, then the user's default schema will be used. </li>
                <li>'schema\_registry\_connection\_retries': Confluent Schema registry connection timeout (in secs). </li>
                <li>'schema\_registry\_connection\_timeout': Confluent Schema registry connection timeout (in secs). </li>
                <li>'schema\_registry\_credential': Confluent Schema Registry <a href="/content/concepts/credentials" target="_top">credential</a> object name. </li>
                <li>'schema\_registry\_location': Location of Confluent Schema Registry in '\[storage\_path\[:storage\_port]]' format. </li>
                <li>'schema\_registry\_port': Confluent Schema Registry port (optional). </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_datasource_request"><span className="type-signature" />alter\_datasource\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters the properties of an existing <a href="/content/concepts/data_sources/" target="_top">data source</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_directory"><span className="type-signature" />alter\_directory<span className="signature">(directory\_name, directory\_updates\_map, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters an existing directory in <a href="/content/tools/kifs/" target="_top">KiFS</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>directory\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the directory in KiFS to be altered.</td>
          </tr>

          <tr>
            <td className="name"><code>directory\_updates\_map</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Map containing the properties of the directory to be altered. Error if empty.

              <ul>
                <li>'data\_limit': The maximum capacity, in bytes, to apply to the directory. Set to -1 to indicate no upper limit. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_directory_request"><span className="type-signature" />alter\_directory\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters an existing directory in <a href="/content/tools/kifs/" target="_top">KiFS</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_environment"><span className="type-signature" />alter\_environment<span className="signature">(environment\_name, action, value, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters an existing environment which can be referenced by a <a href="/content/concepts/udf/" target="_top">user-defined function</a> (UDF). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>environment\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the environment to be altered.</td>
          </tr>

          <tr>
            <td className="name"><code>action</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Modification operation to be applied. Supported values:

              <ul>
                <li>'install\_package': Install a python package from PyPI, an external data source or KiFS. </li>
                <li>'install\_requirements': Install packages from a requirements file. </li>
                <li>'uninstall\_package': Uninstall a python package. </li>
                <li>'uninstall\_requirements': Uninstall packages from a requirements file. </li>
                <li>'reset': Uninstalls all packages in the environment and resets it to the original state at time of creation. </li>
                <li>'rebuild': Recreates the environment and re-installs all packages, upgrades the packages if necessary based on dependencies. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>value</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The value of the modification, depending on <code>action</code>. For example, if <code>action</code> is <code>install\_package</code>, this would be the python package name. If <code>action</code> is <code>install\_requirements</code>, this would be the path of a requirements file from which to install packages. If an external data source is specified in <code>datasource\_name</code>, this can be the path to a wheel file or source archive. Alternatively, if installing from a file (wheel or source archive), the value may be a reference to a file in <a href="/content/tools/kifs/" target="_top">KiFS</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'datasource\_name': Name of an existing external data source from which packages specified in <code>value</code> can be loaded. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_environment_request"><span className="type-signature" />alter\_environment\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters an existing environment which can be referenced by a <a href="/content/concepts/udf/" target="_top">user-defined function</a> (UDF). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_resource_group"><span className="type-signature" />alter\_resource\_group<span className="signature">(name, tier\_attributes, ranking, adjoining\_resource\_group, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters the properties of an existing resource group to facilitate resource management. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the group to be altered. Must be an existing resource group name or an empty string when used in conjunction with <code>is\_default\_group</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>tier\_attributes</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional map containing tier names and their respective attribute group limits. The only valid attribute limit that can be set is max\_memory (in bytes) for the VRAM and RAM tiers. For instance, to set max VRAM capacity to 1GB per rank per GPU and max RAM capacity to 10GB per rank, use: {"{"}'VRAM':{"{"}'max\_memory':'1000000000'{"}"}, 'RAM':{"{"}'max\_memory':'10000000000'{"}"}{"}"}.

              <ul>
                <li>'max\_memory': Maximum amount of memory usable at one time, per rank, per GPU, for the VRAM tier; or maximum amount of memory usable at one time, per rank, for the RAM tier. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>ranking</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              If the resource group ranking is to be updated, this indicates the relative ranking among existing resource groups where this resource group will be placed. Supported values:

              <ul>
                <li>'': Don't change the ranking. </li>
                <li>'first': Make this resource group the new first one in the ordering. </li>
                <li>'last': Make this resource group the new last one in the ordering. </li>
                <li>'before': Place this resource group before the one specified by <code>adjoining\_resource\_group</code> in the ordering. </li>
                <li>'after': Place this resource group after the one specified by <code>adjoining\_resource\_group</code> in the ordering. </li>
              </ul>

              The default value is ''.
            </td>
          </tr>

          <tr>
            <td className="name"><code>adjoining\_resource\_group</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If <code>ranking</code> is <code>before</code> or <code>after</code>, this field indicates the resource group before or after which the current group will be placed; otherwise, leave blank. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'max\_cpu\_concurrency': Maximum number of simultaneous threads that will be used to execute a request, per rank, for this group. The minimum allowed value is '4'. </li>
                <li>'max\_data': Maximum amount of data, per rank, in bytes, that can be used by all database objects within this group. Set to -1 to indicate no upper limit. The minimum allowed value is '-1'. </li>
                <li>'max\_scheduling\_priority': Maximum priority of a scheduled task for this group. The minimum allowed value is '1'. The maximum allowed value is '100'. </li>
                <li>'max\_tier\_priority': Maximum priority of a tiered object for this group. The minimum allowed value is '1'. The maximum allowed value is '10'. </li>

                <li>
                  'is\_default\_group': If <code>true</code>, this request applies to the global default resource group. It is an error for this field to be <code>true</code> when the <code>name</code> field is also populated. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'persist': If <code>true</code> and a system-level change was requested, the system configuration will be written to disk upon successful application of this request. This will commit the changes from this request and any additional in-memory modifications. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_resource_group_request"><span className="type-signature" />alter\_resource\_group\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters the properties of an existing resource group to facilitate resource management. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_role"><span className="type-signature" />alter\_role<span className="signature">(name, action, value, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters a Role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the role to be altered. Must be an existing role.</td>
          </tr>

          <tr>
            <td className="name"><code>action</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Modification operation to be applied to the role. Supported values:

              <ul>
                <li>'set\_comment': Sets the comment for an internal role. </li>
                <li>'set\_resource\_group': Sets the resource group for an internal role. The resource group must exist, otherwise, an empty string assigns the role to the default resource group. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>value</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The value of the modification, depending on <code>action</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_role_request"><span className="type-signature" />alter\_role\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters a Role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_schema"><span className="type-signature" />alter\_schema<span className="signature">(schema\_name, action, value, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Used to change the name of a SQL-style <a href="/content/concepts/schemas/" target="_top">schema</a>, specified in <code>schema\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>schema\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the schema to be altered.</td>
          </tr>

          <tr>
            <td className="name"><code>action</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Modification operation to be applied. Supported values:

              <ul>
                <li>'add\_comment': Adds a comment describing the schema. </li>
                <li>'rename\_schema': Renames a schema to <code>value</code>. Has the same naming restrictions as <a href="/content/concepts/tables/" target="_top">tables</a>. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>value</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The value of the modification, depending on <code>action</code>. For now the only value of <code>action</code> is <code>rename\_schema</code>. In this case the value is the new name of the schema.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_schema_request"><span className="type-signature" />alter\_schema\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Used to change the name of a SQL-style <a href="/content/concepts/schemas/" target="_top">schema</a>, specified in <code>schema\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_system_properties"><span className="type-signature" />alter\_system\_properties<span className="signature">(property\_updates\_map, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> The <a href="/content/api/nodejs/GPUdb#alter_system_properties"><code>GPUdb#alter\_system\_properties</code></a> endpoint is primarily used to simplify the testing of the system and is not expected to be used during normal execution. Commands are given through the <code>property\_updates\_map</code> whose keys are commands and values are strings representing integer values (for example '8000') or boolean values ('true' or 'false'). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>property\_updates\_map</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Map containing the properties of the system to be updated. Error if empty.

              <ul>
                <li>
                  'concurrent\_kernel\_execution': Enables concurrent kernel execution if the value is <code>true</code> and disables it if the value is <code>false</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>
                </li>

                <li>'subtask\_concurrency\_limit': Sets the maximum number of simultaneous threads allocated to a given request, on each rank. Note that thread allocation may also be limited by resource group limits and/or system load. </li>
                <li>'chunk\_size': Sets the number of records per chunk to be used for all new tables. </li>
                <li>'chunk\_column\_max\_memory': Sets the target maximum data size for each column in a chunk to be used for all new tables. </li>
                <li>'chunk\_max\_memory': Indicates the target maximum data size for all columns in a chunk to be used for all new tables. </li>
                <li>'execution\_mode': Sets the execution\_mode for kernel executions to the specified string value. Possible values are host, device, default (engine decides) or an integer value that indicates max chunk size to exec on host. </li>
                <li>'external\_files\_directory': Sets the root directory path where external table data files are accessed from. Path must exist on the head node. </li>
                <li>'request\_timeout': Number of minutes after which filtering (e.g., <a href="/content/api/nodejs/GPUdb#filter"><code>GPUdb#filter</code></a>) and aggregating (e.g., <a href="/content/api/nodejs/GPUdb#aggregate_group_by"><code>GPUdb#aggregate\_group\_by</code></a>) queries will timeout. The default value is '20'. The minimum allowed value is '0'. The maximum allowed value is '1440'. </li>
                <li>'max\_get\_records\_size': The maximum number of records the database will serve for a given data retrieval call. The default value is '20000'. The minimum allowed value is '0'. The maximum allowed value is '1000000'. </li>
                <li>'enable\_audit': Enable or disable auditing. </li>
                <li>'audit\_headers': Enable or disable auditing of request headers. </li>
                <li>'audit\_body': Enable or disable auditing of request bodies. </li>
                <li>'audit\_data': Enable or disable auditing of request data. </li>
                <li>'audit\_response': Enable or disable auditing of response information. </li>
                <li>'shadow\_agg\_size': Size of the shadow aggregate chunk cache in bytes. The default value is '10000000'. The minimum allowed value is '0'. The maximum allowed value is '2147483647'. </li>
                <li>'shadow\_filter\_size': Size of the shadow filter chunk cache in bytes. The default value is '10000000'. The minimum allowed value is '0'. The maximum allowed value is '2147483647'. </li>
                <li>'enable\_overlapped\_equi\_join': Enable overlapped-equi-join filter. The default value is 'true'. </li>
                <li>'enable\_one\_step\_compound\_equi\_join': Enable the one\_step compound-equi-join algorithm. The default value is 'true'. </li>
                <li>'kafka\_batch\_size': Maximum number of records to be ingested in a single batch. The default value is '1000'. The minimum allowed value is '1'. The maximum allowed value is '10000000'. </li>
                <li>'kafka\_poll\_timeout': Maximum time (milliseconds) for each poll to get records from Kafka. The default value is '0'. The minimum allowed value is '0'. The maximum allowed value is '1000'. </li>
                <li>'kafka\_wait\_time': Maximum time (seconds) to buffer records received from Kafka before ingestion. The default value is '30'. The minimum allowed value is '1'. The maximum allowed value is '120'. </li>

                <li>
                  'egress\_parquet\_compression': Parquet file compression type. Supported values:

                  <ul>
                    <li>'uncompressed' </li>
                    <li>'snappy' </li>
                    <li>'gzip' </li>
                  </ul>

                  The default value is 'snappy'.
                </li>

                <li>'egress\_single\_file\_max\_size': Max file size (in MB) to allow saving to a single file. May be overridden by target limitations. The default value is '10000'. The minimum allowed value is '1'. The maximum allowed value is '200000'. </li>
                <li>'max\_concurrent\_kernels': Sets the max\_concurrent\_kernels value of the conf. The minimum allowed value is '0'. The maximum allowed value is '256'. </li>
                <li>'system\_metadata\_retention\_period': Sets the system\_metadata.retention\_period value of the conf. The minimum allowed value is '1'. </li>
                <li>'tcs\_per\_tom': Size of the worker rank data calculation thread pool. This is primarily used for computation-based operations such as aggregates and record retrieval. The minimum allowed value is '2'. The maximum allowed value is '8192'. </li>
                <li>'tps\_per\_tom': Size of the worker rank data processing thread pool. This includes operations such as inserts, updates, and deletes on table data. Multi-head inserts are not affected by this limit. The minimum allowed value is '2'. The maximum allowed value is '8192'. </li>
                <li>'background\_worker\_threads': Size of the worker rank background thread pool. This includes background operations such as watermark evictions catalog table updates. The minimum allowed value is '1'. The maximum allowed value is '8192'. </li>
                <li>'log\_debug\_job\_info': Outputs various job-related information to the rank logs. Used for troubleshooting. </li>
                <li>'enable\_thread\_hang\_logging': Log a stack trace for any thread that runs longer than a defined threshold. Used for troubleshooting. The default value is 'true'. </li>
                <li>'ai\_enable\_rag': Enable RAG. The default value is 'false'. </li>
                <li>'ai\_api\_provider': AI API provider type. </li>
                <li>'ai\_api\_url': AI API URL. </li>
                <li>'ai\_api\_key': AI API key. </li>
                <li>'ai\_api\_connection\_timeout': AI API connection timeout in seconds. </li>
                <li>'ai\_api\_embeddings\_model': AI API model name. </li>
                <li>'telm\_persist\_query\_metrics': Enable or disable persisting of query metrics. </li>
                <li>'telm\_force\_metrics\_duration': Capture metrics for any query exceeding this duration in seconds. </li>
                <li>'postgres\_proxy\_idle\_connection\_timeout': Idle connection timeout in seconds. </li>
                <li>'postgres\_proxy\_keep\_alive': Enable postgres proxy keep alive. The default value is 'false'. </li>
                <li>'kifs\_directory\_data\_limit': The default maximum capacity to apply when creating a KiFS directory (bytes). The minimum allowed value is '-1'. </li>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression algorithm</a> applied to any column without a column-level or table-level default compression specified at the time it was created. </li>
                <li>'disk\_auto\_optimize\_timeout': Time interval in seconds after which the database will apply optimizations/transformations to persisted data, such as compression. The minimum allowed value is '0'. </li>
                <li>'ha\_consumer\_replay\_offset': Initializes HA replay from the given timestamp (as milliseconds since unix epoch). The minimum allowed value is '-1'. </li>
                <li>'admin\_access\_only': Restricts access to system admin users only. The default value is 'false'. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'evict\_to\_cold': If <code>true</code> and evict\_columns is specified, the given objects will be evicted to cold storage (if such a tier exists). Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>
                </li>

                <li>
                  'persist': If <code>true</code> the system configuration will be written to disk upon successful application of this request. This will commit the changes from this request and any additional in-memory modifications. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_system_properties_request"><span className="type-signature" />alter\_system\_properties\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> The <a href="/content/api/nodejs/GPUdb#alter_system_properties"><code>GPUdb#alter\_system\_properties</code></a> endpoint is primarily used to simplify the testing of the system and is not expected to be used during normal execution. Commands are given through the <code>property\_updates\_map</code> whose keys are commands and values are strings representing integer values (for example '8000') or boolean values ('true' or 'false'). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_table"><span className="type-signature" />alter\_table<span className="signature">(table\_name, action, value, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Apply various modifications to a table or view. The available modifications include the following:
        <p> Manage a table's columns--a column can be added, removed, or have its <a href="/content/concepts/types/" target="_top">type and properties</a> modified, including whether it is <a href="/content/concepts/dictionary_encoding/" target="_top">dictionary encoded</a> or not. </p>
        <p> External tables cannot be modified except for their refresh method. </p>
        <p> Create or delete a <a href="/content/concepts/indexes/#column-index" target="_top">column</a>, <a href="/content/concepts/indexes/#low-cardinality-index" target="_top">low-cardinality index</a>, <a href="/content/concepts/indexes/#chunk-skip-index" target="_top">chunk skip</a>, <a href="/content/concepts/indexes/#geospatial-index" target="_top">geospatial</a>, <a href="/content/concepts/indexes/#cagra-index" target="_top">CAGRA</a>, or <a href="/content/concepts/indexes/#hnsw-index" target="_top">HNSW</a> index. This can speed up certain operations when using expressions containing equality or relational operators on indexed columns. This only applies to tables. </p>
        <p> Create or delete a <a href="/content/concepts/tables/#foreign-key" target="_top">foreign key</a> on a particular column. </p>
        <p> Manage a <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range-partitioned</a> or a <a href="/content/concepts/tables/#partitioning-by-list-manual" target="_top">manual list-partitioned</a> table's partitions. </p>
        <p> Set (or reset) the <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> of a table or view. </p>
        <p> Refresh and manage the refresh mode of a <a href="/content/concepts/materialized_views/" target="_top">materialized view</a> or an <a href="/content/concepts/external_tables/" target="_top">external table</a>. </p>
        <p> Set the <a href="/content/concepts/ttl/" target="_top">time-to-live (TTL)</a>. This can be applied to tables or views. </p>
        <p> Set the global access mode (i.e. locking) for a table. This setting trumps any role-based access controls that may be in place; e.g., a user with write access to a table marked read-only will not be able to insert records into it. The mode can be set to read-only, write-only, read/write, and no access. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Table on which the operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table or view.</td>
          </tr>

          <tr>
            <td className="name"><code>action</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Modification operation to be applied. Supported values:

              <ul>
                <li>'create\_index': Creates a <a href="/content/concepts/indexes/#column-index" target="_top">column (attribute) index</a>, <a href="/content/concepts/indexes/#low-cardinality-index" target="_top">low-cardinality index</a>, <a href="/content/concepts/indexes/#chunk-skip-index" target="_top">chunk skip index</a>, <a href="/content/concepts/indexes/#geospatial-index" target="_top">geospatial index</a>, <a href="/content/concepts/indexes/#cagra-index" target="_top">CAGRA index</a>, or <a href="/content/concepts/indexes/#hnsw-index" target="_top">HNSW index</a> (depending on the specified <code>index\_type</code>), on the column name specified in <code>value</code>. If this column already has the specified index, an error will be returned. </li>
                <li>'refresh\_index': Refreshes an index identified by <code>index\_type</code>, on the column name specified in <code>value</code>. Currently applicable only to CAGRA indices. </li>
                <li>'delete\_index': Deletes a <a href="/content/concepts/indexes/#column-index" target="_top">column (attribute) index</a>, <a href="/content/concepts/indexes/#low-cardinality-index" target="_top">low-cardinality index</a>, <a href="/content/concepts/indexes/#chunk-skip-index" target="_top">chunk skip index</a>, <a href="/content/concepts/indexes/#geospatial-index" target="_top">geospatial index</a>, <a href="/content/concepts/indexes/#cagra-index" target="_top">CAGRA index</a>, or <a href="/content/concepts/indexes/#hnsw-index" target="_top">HNSW index</a> (depending on the specified <code>index\_type</code>), on the column name specified in <code>value</code>. If this column does not have the specified index, an error will be returned. </li>
                <li>'move\_to\_collection': \[DEPRECATED--please use <code>move\_to\_schema</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Moves a table or view into a schema named <code>value</code>. If the schema provided is non-existent, it will be automatically created. </li>
                <li>'move\_to\_schema': Moves a table or view into a schema named <code>value</code>. If the schema provided is nonexistent, an error will be thrown. If <code>value</code> is empty, then the table or view will be placed in the user's default schema. </li>
                <li>'protected': No longer used. Previously set whether the given <code>table\_name</code> should be protected or not. The <code>value</code> would have been either 'true' or 'false'. </li>
                <li>'rename\_table': Renames a table or view to <code>value</code>. Has the same naming restrictions as <a href="/content/concepts/tables/" target="_top">tables</a>. </li>
                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">time-to-live</a> in minutes of the table or view specified in <code>table\_name</code>. </li>
                <li>'add\_comment': Adds the comment specified in <code>value</code> to the table specified in <code>table\_name</code>. Use <code>column\_name</code> to set the comment for a column. </li>
                <li>'add\_column': Adds the column specified in <code>value</code> to the table specified in <code>table\_name</code>. Use <code>column\_type</code> and <code>column\_properties</code> in <code>options</code> to set the column's type and properties, respectively. </li>
                <li>'change\_column': Changes type and properties of the column specified in <code>value</code>. Use <code>column\_type</code> and <code>column\_properties</code> in <code>options</code> to set the column's type and properties, respectively. Note that primary key and/or shard key columns cannot be changed. All unchanging column properties must be listed for the change to take place, e.g., to add dictionary encoding to an existing 'char4' column, both 'char4' and 'dict' must be specified in the <code>options</code> map. </li>
                <li>'delete\_column': Deletes the column specified in <code>value</code> from the table specified in <code>table\_name</code>. </li>
                <li>'set\_default': Sets or replaces the default value expression for the column specified in <code>value</code>. The new default is taken from <code>add\_column\_expression</code>. Existing properties on the column are preserved. </li>
                <li>'delete\_default': Removes the default value expression from the column specified in <code>value</code>. Other column properties are preserved. </li>
                <li>'create\_foreign\_key': Creates a <a href="/content/concepts/tables/#foreign-key" target="_top">foreign key</a> specified in <code>value</code> using the format '(source\_column\_name \[, ...]) references target\_table\_name(primary\_key\_column\_name \[, ...]) \[as foreign\_key\_name]'. </li>
                <li>'delete\_foreign\_key': Deletes a <a href="/content/concepts/tables/#foreign-key" target="_top">foreign key</a>. The <code>value</code> should be the foreign\_key\_name specified when creating the key or the complete string used to define it. </li>
                <li>'add\_partition': Adds the partition specified in <code>value</code>, to either a <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range-partitioned</a> or <a href="/content/concepts/tables/#partitioning-by-list-manual" target="_top">manual list-partitioned</a> table. </li>
                <li>'remove\_partition': Removes the partition specified in <code>value</code> (and relocates all of its data to the default partition) from either a <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range-partitioned</a> or <a href="/content/concepts/tables/#partitioning-by-list-manual" target="_top">manual list-partitioned</a> table. </li>
                <li>'delete\_partition': Deletes the partition specified in <code>value</code> (and all of its data) from either a <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range-partitioned</a> or <a href="/content/concepts/tables/#partitioning-by-list-manual" target="_top">manual list-partitioned</a> table. </li>
                <li>'set\_global\_access\_mode': Sets the global access mode (i.e. locking) for the table specified in <code>table\_name</code>. Specify the access mode in <code>value</code>. Valid modes are 'no\_access', 'read\_only', 'write\_only' and 'read\_write'. </li>
                <li>'refresh': For a <a href="/content/concepts/materialized_views/" target="_top">materialized view</a>, replays all the table creation commands required to create the view. For an <a href="/content/concepts/external_tables/" target="_top">external table</a>, reloads all data in the table from its associated source files or <a href="/content/concepts/data_sources/" target="_top">data source</a>. </li>
                <li>'set\_refresh\_method': For a <a href="/content/concepts/materialized_views/" target="_top">materialized view</a>, sets the method by which the view is refreshed to the method specified in <code>value</code> - one of 'manual', 'periodic', or 'on\_change'. For an <a href="/content/concepts/external_tables/" target="_top">external table</a>, sets the method by which the table is refreshed to the method specified in <code>value</code> - either 'manual' or 'on\_start'. </li>
                <li>'set\_refresh\_start\_time': Sets the time to start periodic refreshes of this <a href="/content/concepts/materialized_views/" target="_top">materialized view</a> to the datetime string specified in <code>value</code> with format 'YYYY-MM-DD HH:MM:SS'. Subsequent refreshes occur at the specified time + N \* the refresh period. </li>
                <li>'set\_refresh\_stop\_time': Sets the time to stop periodic refreshes of this <a href="/content/concepts/materialized_views/" target="_top">materialized view</a> to the datetime string specified in <code>value</code> with format 'YYYY-MM-DD HH:MM:SS'. </li>
                <li>'set\_refresh\_period': Sets the time interval in seconds at which to refresh this <a href="/content/concepts/materialized_views/" target="_top">materialized view</a> to the value specified in <code>value</code>. Also, sets the refresh method to periodic if not already set. </li>
                <li>'set\_refresh\_span': Sets the future time-offset(in seconds) for the view refresh to stop. </li>
                <li>'set\_refresh\_execute\_as': Sets the user name to refresh this <a href="/content/concepts/materialized_views/" target="_top">materialized view</a> to the value specified in <code>value</code>. </li>
                <li>'remove\_text\_search\_attributes': Removes <a href="/content/concepts/full_text_search/" target="_top">text search</a> attribute from all columns. </li>
                <li>'remove\_shard\_keys': Removes the shard key property from all columns, so that the table will be considered randomly sharded. The data is not moved. The <code>value</code> is ignored. </li>
                <li>'set\_strategy\_definition': Sets the <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns to the one specified in <code>value</code>, replacing the existing tier strategy in its entirety. </li>
                <li>'cancel\_datasource\_subscription': Permanently unsubscribe a data source that is loading continuously as a stream. The data source can be Kafka / S3 / Azure / GCS. </li>
                <li>'drop\_datasource\_subscription': Permanently delete a cancelled data source subscription. </li>
                <li>'pause\_datasource\_subscription': Temporarily unsubscribe a data source that is loading continuously as a stream. The data source can be Kafka / S3 / Azure / GCS. </li>
                <li>'resume\_datasource\_subscription': Resubscribe to a paused data source subscription. The data source can be Kafka / S3 / Azure / GCS. </li>
                <li>'change\_owner': Change the owner resource group of the table. </li>
                <li>'set\_load\_vectors\_policy': Set startup data loading scheme for the table; see description of 'load\_vectors\_policy' in <a href="/content/api/nodejs/GPUdb#create_table"><code>GPUdb#create\_table</code></a> for possible values for <code>value</code>. </li>
                <li>'set\_build\_pk\_index\_policy': Set startup primary key generation scheme for the table; see description of 'build\_pk\_index\_policy' in <a href="/content/api/nodejs/GPUdb#create_table"><code>GPUdb#create\_table</code></a> for possible values for <code>value</code>. </li>
                <li>'set\_build\_materialized\_view\_policy': Set startup rebuilding scheme for the materialized view; see description of 'build\_materialized\_view\_policy' in <a href="/content/api/nodejs/GPUdb#create_materialized_view"><code>GPUdb#create\_materialized\_view</code></a> for possible values for <code>value</code>. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>value</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The value of the modification, depending on <code>action</code>. For example, if <code>action</code> is <code>add\_column</code>, this would be the column name; while the column's definition would be covered by the <code>column\_type</code>, <code>column\_properties</code>, <code>column\_default\_value</code>, and <code>add\_column\_expression</code> in <code>options</code>. If <code>action</code> is <code>ttl</code>, it would be the number of minutes for the new TTL. If <code>action</code> is <code>refresh</code>, this field would be blank.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'action' </li>
                <li>'column\_name' </li>
                <li>'table\_name' </li>
                <li>'column\_default\_value': When adding a column, set a literal default value for existing records. For nullable columns, the default value will be null, regardless of data type. Also persisted as the column's default for future inserts that omit the column. </li>
                <li>'column\_properties': When adding or changing a column, set the column properties (strings, separated by a comma: data, text\_search, char8, int8 etc). </li>
                <li>'column\_type': When adding or changing a column, set the column type (strings, separated by a comma: int, double, string, null etc). </li>
                <li>'copy\_values\_from\_column': \[DEPRECATED] Please use <code>add\_column\_expression</code> instead. </li>
                <li>'rename\_column': When changing a column, specify new column name. </li>

                <li>
                  'validate\_change\_column': When changing a column, validate the change before applying it (or not). Supported values:

                  <ul>
                    <li>'true': Validate all values. A value too large (or too long) for the new type will prevent any change. </li>
                    <li>'false': When a value is too large or long, it will be truncated. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'update\_last\_access\_time': Indicates whether the <a href="/content/concepts/ttl/" target="_top">time-to-live</a> (TTL) expiration countdown timer should be reset to the table's TTL. Supported values:

                  <ul>
                    <li>'true': Reset the expiration countdown timer to the table's configured TTL. </li>
                    <li>'false': Don't reset the timer; expiration countdown will continue from where it is, as if the table had not been accessed. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'add\_column\_expression': When adding a column or setting a new default with <code>action</code> set to <code>set\_default</code>, the new default expression (GPUdb-syntax) for the column. Any valid expression may be used, including one containing references to existing columns in the same table. Persisted as the column's default for future inserts that omit the column; for add\_column, also used to backfill existing rows. </li>
                <li>'add\_column\_expression\_sql': Optional SQL-syntax form of <code>add\_column\_expression</code>, used only when the SQL syntax differs from the GPUdb syntax. Persisted alongside the GPUdb form so SHOW CREATE TABLE / information\_schema can reproduce the original SQL. </li>
                <li>'strategy\_definition': Parameter for specifying the <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns when <code>action</code> is <code>set\_strategy\_definition</code>, replacing the existing tier strategy in its entirety. </li>

                <li>
                  'index\_type': Type of index to create, when <code>action</code> is <code>create\_index</code>; to refresh, when <code>action</code> is <code>refresh\_index</code>; or to delete, when <code>action</code> is <code>delete\_index</code>. Supported values:

                  <ul>
                    <li>'column': Create or delete a <a href="/content/concepts/indexes/#column-index" target="_top">column (attribute) index</a>. </li>
                    <li>'low\_cardinality': Create a <a href="/content/concepts/indexes/#low-cardinality-index" target="_top">low-cardinality column (attribute) index</a>. </li>
                    <li>'chunk\_skip': Create or delete a <a href="/content/concepts/indexes/#chunk-skip-index" target="_top">chunk skip index</a>. </li>
                    <li>'geospatial': Create or delete a <a href="/content/concepts/indexes/#geospatial-index" target="_top">geospatial index</a>. </li>
                    <li>'cagra': Create or delete a <a href="/content/concepts/indexes/#cagra-index" target="_top">CAGRA index</a> on a <a href="/content/vector_search/#vector-type" target="_top">vector column</a>. </li>
                    <li>'hnsw': Create or delete an <a href="/content/concepts/indexes/#hnsw-index" target="_top">HNSW index</a> on a <a href="/content/vector_search/#vector-type" target="_top">vector column</a>. </li>
                  </ul>

                  The default value is 'column'.
                </li>

                <li>'index\_options': Options to use when creating an index, in the format "key: value \[, key: value \[, ...]]". Valid options vary by index type. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_table_columns"><span className="type-signature" />alter\_table\_columns<span className="signature">(table\_name, column\_alterations, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Apply various modifications to columns in a table, view. The available modifications include the following:
        <p> Create or delete an <a href="/content/concepts/indexes/#column-index" target="_top">index</a> on a particular column. This can speed up certain operations when using expressions containing equality or relational operators on indexed columns. This only applies to tables. </p>
        <p> Manage a table's columns--a column can be added, removed, or have its <a href="/content/concepts/types/" target="_top">type and properties</a> modified, including whether it is <a href="/content/concepts/dictionary_encoding/" target="_top">dictionary encoded</a> or not. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Table on which the operation will be performed. Must be an existing table or view, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_alterations</code></td>
            <td className="type"> <span className="param-type">Array.\<Object></span> </td>
            <td className="description last">List of alter table add/delete/change column requests - all for the same table. Each request is a map that includes 'column\_name', 'action' and the options specific for the action. Note that the same options as in alter table requests but in the same map as the column name and the action. For example: \[{"{"}'column\_name':'col\_1','action':'change\_column','rename\_column':'col\_2'{"}"},{"{"}'column\_name':'col\_1','action':'add\_column', 'type':'int','default\_value':'1'{"}"}].</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_table_columns_request"><span className="type-signature" />alter\_table\_columns\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Apply various modifications to columns in a table, view. The available modifications include the following:
        <p> Create or delete an <a href="/content/concepts/indexes/#column-index" target="_top">index</a> on a particular column. This can speed up certain operations when using expressions containing equality or relational operators on indexed columns. This only applies to tables. </p>
        <p> Manage a table's columns--a column can be added, removed, or have its <a href="/content/concepts/types/" target="_top">type and properties</a> modified, including whether it is <a href="/content/concepts/dictionary_encoding/" target="_top">dictionary encoded</a> or not. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_table_metadata"><span className="type-signature" />alter\_table\_metadata<span className="signature">(table\_names, metadata\_map, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Updates (adds or changes) metadata for tables. The metadata key and values must both be strings. This is an easy way to annotate whole tables rather than single records within tables. Some examples of metadata are owner of the table, table creation timestamp etc. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Names of the tables whose metadata will be updated, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. All specified tables must exist, or an error will be returned.</td>
          </tr>

          <tr>
            <td className="name"><code>metadata\_map</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">A map which contains the metadata of the tables that are to be updated. Note that only one map is provided for all the tables; so the change will be applied to every table. If the provided map is empty, then all existing metadata for the table(s) will be cleared.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_table_metadata_request"><span className="type-signature" />alter\_table\_metadata\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Updates (adds or changes) metadata for tables. The metadata key and values must both be strings. This is an easy way to annotate whole tables rather than single records within tables. Some examples of metadata are owner of the table, table creation timestamp etc. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_table_monitor"><span className="type-signature" />alter\_table\_monitor<span className="signature">(topic\_id, monitor\_updates\_map, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters a table monitor previously created with <a href="/content/api/nodejs/GPUdb#create_table_monitor"><code>GPUdb#create\_table\_monitor</code></a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>topic\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The topic ID returned by <a href="/content/api/nodejs/GPUdb#create_table_monitor"><code>GPUdb#create\_table\_monitor</code></a>.</td>
          </tr>

          <tr>
            <td className="name"><code>monitor\_updates\_map</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Map containing the properties of the table monitor to be updated. Error if empty.

              <ul>
                <li>'schema\_name': Updates the schema name. If <code>schema\_name</code> doesn't exist, an error will be thrown. If <code>schema\_name</code> is empty, then the user's default schema will be used. </li>
                <li>'max\_consecutive\_failures': Updates the maximum number of consecutive failures before suspending the stream. A value of '-1' to disables auto-suspend. This value is by rank and not overall. </li>

                <li>
                  'notifications': Updates the state of the monitor. Supported values:

                  <ul>
                    <li>'resume' </li>
                    <li>'suspend' </li>
                  </ul>

                  The default value is an empty object ( {"{"}{"}"} ).
                </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_table_monitor_request"><span className="type-signature" />alter\_table\_monitor\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters a table monitor previously created with <a href="/content/api/nodejs/GPUdb#create_table_monitor"><code>GPUdb#create\_table\_monitor</code></a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_table_request"><span className="type-signature" />alter\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Apply various modifications to a table or view. The available modifications include the following:
        <p> Manage a table's columns--a column can be added, removed, or have its <a href="/content/concepts/types/" target="_top">type and properties</a> modified, including whether it is <a href="/content/concepts/dictionary_encoding/" target="_top">dictionary encoded</a> or not. </p>
        <p> External tables cannot be modified except for their refresh method. </p>
        <p> Create or delete a <a href="/content/concepts/indexes/#column-index" target="_top">column</a>, <a href="/content/concepts/indexes/#low-cardinality-index" target="_top">low-cardinality index</a>, <a href="/content/concepts/indexes/#chunk-skip-index" target="_top">chunk skip</a>, <a href="/content/concepts/indexes/#geospatial-index" target="_top">geospatial</a>, <a href="/content/concepts/indexes/#cagra-index" target="_top">CAGRA</a>, or <a href="/content/concepts/indexes/#hnsw-index" target="_top">HNSW</a> index. This can speed up certain operations when using expressions containing equality or relational operators on indexed columns. This only applies to tables. </p>
        <p> Create or delete a <a href="/content/concepts/tables/#foreign-key" target="_top">foreign key</a> on a particular column. </p>
        <p> Manage a <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range-partitioned</a> or a <a href="/content/concepts/tables/#partitioning-by-list-manual" target="_top">manual list-partitioned</a> table's partitions. </p>
        <p> Set (or reset) the <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> of a table or view. </p>
        <p> Refresh and manage the refresh mode of a <a href="/content/concepts/materialized_views/" target="_top">materialized view</a> or an <a href="/content/concepts/external_tables/" target="_top">external table</a>. </p>
        <p> Set the <a href="/content/concepts/ttl/" target="_top">time-to-live (TTL)</a>. This can be applied to tables or views. </p>
        <p> Set the global access mode (i.e. locking) for a table. This setting trumps any role-based access controls that may be in place; e.g., a user with write access to a table marked read-only will not be able to insert records into it. The mode can be set to read-only, write-only, read/write, and no access. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_tier"><span className="type-signature" />alter\_tier<span className="signature">(name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Alters properties of an existing <a href="/content/rm/concepts/#storage-tiers" target="_top">tier</a> to facilitate <a href="/content/rm/concepts/" target="_top">resource management</a>.
        <p> To disable <a href="/content/rm/concepts/#watermark-based-eviction" target="_top">watermark-based eviction</a>, set both <code>high\_watermark</code> and <code>low\_watermark</code> to 100. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the tier to be altered. Must be an existing tier group name: vram, ram, disk\[n], persist, cold\[n].</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'capacity': Maximum size in bytes this tier may hold at once, per rank. </li>
                <li>'high\_watermark': Threshold of usage of this tier's resource that once exceeded, will trigger watermark-based eviction from this tier. The minimum allowed value is '0'. The maximum allowed value is '100'. </li>
                <li>'low\_watermark': Threshold of resource usage that once fallen below after crossing the <code>high\_watermark</code>, will cease watermark-based eviction from this tier. The minimum allowed value is '0'. The maximum allowed value is '100'. </li>
                <li>'wait\_timeout': Timeout in seconds for reading from or writing to this resource. Applies to cold storage tiers only. </li>

                <li>
                  'persist': If <code>true</code> the system configuration will be written to disk upon successful application of this request. This will commit the changes from this request and any additional in-memory modifications. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'rank': Apply the requested change only to a specific rank. The minimum allowed value is '0'. The maximum allowed value is '10000'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_tier_request"><span className="type-signature" />alter\_tier\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Alters properties of an existing <a href="/content/rm/concepts/#storage-tiers" target="_top">tier</a> to facilitate <a href="/content/rm/concepts/" target="_top">resource management</a>.
        <p> To disable <a href="/content/rm/concepts/#watermark-based-eviction" target="_top">watermark-based eviction</a>, set both <code>high\_watermark</code> and <code>low\_watermark</code> to 100. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_user"><span className="type-signature" />alter\_user<span className="signature">(name, action, value, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters a user. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user to be altered. Must be an existing user.</td>
          </tr>

          <tr>
            <td className="name"><code>action</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Modification operation to be applied to the user. Supported values:

              <ul>
                <li>'set\_activated': Is the user allowed to login. </li>
                <li>'true': User may login. </li>
                <li>'false': User may not login. </li>
                <li>'set\_comment': Sets the comment for an internal user. </li>
                <li>'set\_default\_schema': Set the default\_schema for an internal user. An empty string means the user will have no default schema. </li>
                <li>'set\_password': Sets the password of the user. The user must be an internal user. </li>
                <li>'set\_resource\_group': Sets the resource group for an internal user. The resource group must exist, otherwise, an empty string assigns the user to the default resource group. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>value</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The value of the modification, depending on <code>action</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_user_request"><span className="type-signature" />alter\_user\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters a user. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_video"><span className="type-signature" />alter\_video<span className="signature">(path, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters a video. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>path</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Fully-qualified <a href="/content/tools/kifs/" target="_top">KiFS</a> path to the video to be altered.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the video. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_video_request"><span className="type-signature" />alter\_video\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters a video. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_wal"><span className="type-signature" />alter\_wal<span className="signature">(table\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters table write-ahead log (WAL) settings. Returns information about the requested table WAL modifications. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of tables to modify. An asterisk changes the system settings.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'max\_segment\_size': Maximum size of an individual segment file. </li>
                <li>'segment\_count': Approximate number of segment files to split the WAL across. Must be at least two. </li>

                <li>
                  'sync\_policy': Maximum size of an individual segment file. Supported values:

                  <ul>
                    <li>'none': Disables the WAL. </li>
                    <li>'background': WAL entries are periodically written instead of immediately after each operation. </li>
                    <li>'flush': Protects entries in the event of a database crash. </li>
                    <li>'fsync': Protects entries in the event of an OS crash. </li>
                  </ul>
                </li>

                <li>'flush\_frequency': Specifies how frequently WAL entries are written with background sync. This is a global setting and can only be used with the system {"{"}options.table\_names{"}"} specifier '\*'. </li>

                <li>
                  'checksum': If <code>true</code> each entry will be checked against a protective checksum. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'override\_non\_default': If <code>true</code> tables with unique WAL settings will be overridden when applying a system level change. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'restore\_system\_settings': If <code>true</code> tables with unique WAL settings will be reverted to the current global settings. Cannot be used in conjunction with any other option. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'persist': If <code>true</code> and a system-level change was requested, the system configuration will be written to disk upon successful application of this request. This will commit the changes from this request and any additional in-memory modifications. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="alter_wal_request"><span className="type-signature" />alter\_wal\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Alters table write-ahead log (WAL) settings. Returns information about the requested table WAL modifications. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="append_records"><span className="type-signature" />append\_records<span className="signature">(table\_name, source\_table\_name, field\_map, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Append (or insert) all records from a source table (specified by <code>source\_table\_name</code>) to a particular target table (specified by <code>table\_name</code>). The field map (specified by <code>field\_map</code>) holds the user specified map of target table column names with their mapped source column names. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The table name for the records to be appended, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table.</td>
          </tr>

          <tr>
            <td className="name"><code>source\_table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The source table name to get records from, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table name.</td>
          </tr>

          <tr>
            <td className="name"><code>field\_map</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Contains the mapping of column names from the target table (specified by <code>table\_name</code>) as the keys, and corresponding column names or expressions (e.g., 'col\_name+1') from the source table (specified by <code>source\_table\_name</code>). Must be existing column names in source table and target table, and their types must be matched. For details on using expressions, see <a href="/content/concepts/expressions/" target="_top">Expressions</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'offset': A positive integer indicating the number of initial results to skip from <code>source\_table\_name</code>. Default is 0. The minimum allowed value is 0. The maximum allowed value is MAX\_INT. The default value is '0'. </li>
                <li>'limit': A positive integer indicating the maximum number of results to be returned from <code>source\_table\_name</code>. Or END\_OF\_SET (-9999) to indicate that the max number of results should be returned. The default value is '-9999'. </li>
                <li>'expression': Filter expression to apply to the <code>source\_table\_name</code>. The default value is ''. </li>
                <li>'order\_by': Comma-separated list of the columns to be sorted by from source table (specified by <code>source\_table\_name</code>), e.g., 'timestamp asc, x desc'. The <code>order\_by</code> columns do not have to be present in <code>field\_map</code>. The default value is ''. </li>

                <li>
                  'update\_on\_existing\_pk': Specifies the record collision policy for inserting source table records (specified by <code>source\_table\_name</code>) into a target table (specified by <code>table\_name</code>) with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>. If set to <code>true</code>, any existing table record with primary key values that match those of a source table record being inserted will be replaced by that new record (the new data will be "upserted"). If set to <code>false</code>, any existing table record with primary key values that match those of a source table record being inserted will remain unchanged, while the source record will be rejected and an error handled as determined by <code>ignore\_existing\_pk</code>. If the specified table does not have a primary key, then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Upsert new records when primary keys match existing records. </li>
                    <li>'false': Reject new records when primary keys match existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'enable\_inplace\_updates': Applies only when upserting (when <code>update\_on\_existing\_pk</code> is <code>true</code>). If set to <code>true</code>, an existing record matched by primary key is modified in place. If set to <code>false</code>, it is 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>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'ignore\_existing\_pk': Specifies the record collision error-suppression policy for inserting source table records (specified by <code>source\_table\_name</code>) into a target table (specified by <code>table\_name</code>) with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, only used when not in upsert mode (upsert mode is disabled when <code>update\_on\_existing\_pk</code> is <code>false</code>). If set to <code>true</code>, any source table record being inserted that is rejected for having primary key values that match those of an existing target table record will be ignored with no error generated. If <code>false</code>, the rejection of any source table record for having primary key values matching an existing target table record will result in an error being raised. If the specified table does not have a primary key or if upsert mode is in effect (<code>update\_on\_existing\_pk</code> is <code>true</code>), then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Ignore source table records whose primary key values collide with those of target table records. </li>
                    <li>'false': Raise an error for any source table record whose primary key values collide with those of a target table record. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'pk\_conflict\_predicate\_higher': The record with higher value for the column resolves the primary-key insert conflict. The default value is ''. </li>
                <li>'pk\_conflict\_predicate\_lower': The record with lower value for the column resolves the primary-key insert conflict. The default value is ''. </li>

                <li>
                  'truncate\_strings': If set to <code>true</code>, it allows inserting longer strings into smaller charN string columns by truncating the longer strings to fit. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="append_records_request"><span className="type-signature" />append\_records\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Append (or insert) all records from a source table (specified by <code>source\_table\_name</code>) to a particular target table (specified by <code>table\_name</code>). The field map (specified by <code>field\_map</code>) holds the user specified map of target table column names with their mapped source column names. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="check_table"><span className="type-signature" />check\_table<span className="signature">(table\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Scans the requested tables as specified in <code>table\_names</code> for integrity. Any table chunks which fail the check will be marked as corrupt. By default the database will automatically repair corrupt tables (via truncating). Note that since this reads every table column from disk it may be a potentially long-running operation. The option <code>local\_only</code> can be used to skip any table files already written to a remote storage. Returns table corruption results. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of tables to query. An asterisk returns all tables.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'local\_only': If <code>true</code> only locally persisted files will be checked. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'show\_detail': If <code>true</code> reports individual chunk errors. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="check_table_request"><span className="type-signature" />check\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Scans the requested tables as specified in <code>table\_names</code> for integrity. Any table chunks which fail the check will be marked as corrupt. By default the database will automatically repair corrupt tables (via truncating). Note that since this reads every table column from disk it may be a potentially long-running operation. The option <code>local\_only</code> can be used to skip any table files already written to a remote storage. Returns table corruption results. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="clear_statistics"><span className="type-signature" />clear\_statistics<span className="signature">(table\_name, column\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Clears statistics (cardinality, mean value, etc.) for a column in a specified table. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of a table, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column in <code>table\_name</code> for which to clear statistics. The column must be from an existing table. An empty string clears statistics for all columns in the table. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="clear_statistics_request"><span className="type-signature" />clear\_statistics\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Clears statistics (cardinality, mean value, etc.) for a column in a specified table. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="clear_table"><span className="type-signature" />clear\_table<span className="signature">(table\_name, authorization, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Clears (drops) one or all tables in the database cluster. The operation is synchronous meaning that the table will be cleared before the function returns. The response payload returns the status of the operation along with the name of the table that was cleared. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to be cleared, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table. Empty string clears all available tables, though this behavior is be prevented by default via gpudb.conf parameter 'disable\_clear\_all'. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>authorization</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">No longer used. User can pass an empty string. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_not\_exists': If <code>true</code> and if the table specified in <code>table\_name</code> does not exist no error is returned. If <code>false</code> and if the table specified in <code>table\_name</code> does not exist then an error is returned. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="clear_table_monitor"><span className="type-signature" />clear\_table\_monitor<span className="signature">(topic\_id, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deactivates a table monitor previously created with <a href="/content/api/nodejs/GPUdb#create_table_monitor"><code>GPUdb#create\_table\_monitor</code></a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>topic\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The topic ID returned by <a href="/content/api/nodejs/GPUdb#create_table_monitor"><code>GPUdb#create\_table\_monitor</code></a>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'keep\_autogenerated\_sink': If <code>true</code>, the auto-generated <a href="/content/concepts/data_sinks/" target="_top">datasink</a> associated with this monitor, if there is one, will be retained for further use. If <code>false</code>, then the auto-generated sink will be dropped if there are no other monitors referencing it. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'clear\_all\_references': If <code>true</code>, all references that share the same <code>topic\_id</code> will be cleared. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="clear_table_monitor_request"><span className="type-signature" />clear\_table\_monitor\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deactivates a table monitor previously created with <a href="/content/api/nodejs/GPUdb#create_table_monitor"><code>GPUdb#create\_table\_monitor</code></a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="clear_table_request"><span className="type-signature" />clear\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Clears (drops) one or all tables in the database cluster. The operation is synchronous meaning that the table will be cleared before the function returns. The response payload returns the status of the operation along with the name of the table that was cleared. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="clear_tables"><span className="type-signature" />clear\_tables<span className="signature">(table\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Clears (drops) tables in the database cluster. The operation is synchronous meaning that the tables will be cleared before the function returns. The response payload returns the status of the operation for each table requested. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Names of the tables to be cleared, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be existing tables. Empty list clears all available tables, though this behavior is be prevented by default via gpudb.conf parameter 'disable\_clear\_all'. The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_not\_exists': If <code>true</code> and if a table specified in <code>table\_names</code> does not exist no error is returned. If <code>false</code> and if a table specified in <code>table\_names</code> does not exist then an error is returned. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="clear_tables_request"><span className="type-signature" />clear\_tables\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Clears (drops) tables in the database cluster. The operation is synchronous meaning that the tables will be cleared before the function returns. The response payload returns the status of the operation for each table requested. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="clear_trigger"><span className="type-signature" />clear\_trigger<span className="signature">(trigger\_id, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Clears or cancels the trigger identified by the specified handle. The output returns the handle of the trigger cleared as well as indicating success or failure of the trigger deactivation. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>trigger\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">ID for the trigger to be deactivated.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="clear_trigger_request"><span className="type-signature" />clear\_trigger\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Clears or cancels the trigger identified by the specified handle. The output returns the handle of the trigger cleared as well as indicating success or failure of the trigger deactivation. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="collect_statistics"><span className="type-signature" />collect\_statistics<span className="signature">(table\_name, column\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Collect statistics for a column(s) in a specified table. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of a table, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table. A value of '\*' collects statistics on every user table the caller may read (excluding system schemas, views, and temporary tables); when used, <code>column\_names</code> must be '\*'.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of one or more column names in <code>table\_name</code> for which to collect statistics (cardinality, mean value, etc.). A single entry of '\*' expands to every collectable column on the table (geometry, vector, JSON, and array columns are skipped).</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="collect_statistics_request"><span className="type-signature" />collect\_statistics\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Collect statistics for a column(s) in a specified table. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_backup"><span className="type-signature" />create\_backup<span className="signature">(backup\_name, backup\_type, backup\_objects\_map, datasink\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a database <a href="/content/admin/backup_restore/#database-backup" target="_top">backup</a>, containing a snapshot of existing objects, at the remote file store accessible via the <a href="/content/concepts/data_sinks/" target="_top">data sink</a> specified by <code>datasink\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>backup\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name for this backup. If the backup already exists, only an incremental or differential backup can be made, unless <code>recreate</code> is set to <code>true</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>backup\_type</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Type of snapshot to create. Supported values:

              <ul>
                <li>'differential': Snapshot of changes in the database objects and data since the last full snapshot. </li>
                <li>'full': Snapshot of the given database objects and data. </li>
                <li>'incremental': Snapshot of changes in the database objects and data since the last snapshot of any kind. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>backup\_objects\_map</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Map of objects to be captured in the backup; must be specified when creating a full snapshot and left unspecified when creating an incremental or differential snapshot.

              <ul>
                <li>'all': All object types and data contained in the given <a href="/content/concepts/schemas/" target="_top">schema(s)</a>. </li>
                <li>'catalog': Data Lake catalog that is external to the database. </li>
                <li>'context': <a href="/content/sql-gpt/concepts/#sql-gpt-context" target="_top">Context(s)</a>. </li>
                <li>'credential': <a href="/content/concepts/credentials/" target="_top">Credential(s)</a>. </li>
                <li>'datasink': <a href="/content/concepts/data_sinks/" target="_top">Data sink(s)</a>. </li>
                <li>'datasource': <a href="/content/concepts/data_sources/" target="_top">Data source(s)</a>. </li>
                <li>'function\_environment': <a href="/content/udf/python/writing/#udf-python-func-env" target="_top">Python UDF function environment(s)</a>. </li>
                <li>'graph': <a href="/content/graph_solver/network_graph_solver/" target="_top">Graph(s)</a> definition. </li>
                <li>'monitor': <a href="/content/concepts/table_monitors/" target="_top">Table monitor(s)</a> / <a href="/content/sql/ddl/#create-stream" target="_top">SQL stream(s)</a>. </li>
                <li>'resource\_group': <a href="/content/rm/concepts/#resource-groups" target="_top">Resource group(s)</a>. </li>
                <li>'role': <a href="/content/security/sec_concepts/#roles" target="_top">Role(s)</a>, role members (roles or users, recursively), and associated permissions. </li>
                <li>'stored\_procedure': <a href="/content/sql/procedure/" target="_top">SQL procedure(s)</a>. </li>
                <li>'table': <a href="/content/concepts/tables/" target="_top">Table(s)</a> and <a href="/content/sql/ddl/#create-view" target="_top">SQL view(s)</a>. Active subscriptions on any tables to be backed up will be temporarily suspended while the backup is active. </li>
                <li>'user': <a href="/content/security/sec_concepts/#security-concepts-users" target="_top">User(s)</a> (internal and external) and associated permissions. </li>
                <li>'user\_defined\_function': <a href="/content/udf_overview" target="_top">UDF(s)</a>. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>datasink\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Data sink through which the backup will be stored.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'checksum': Whether or not to calculate checksums for backup files. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'comment': Comments to store with this backup. </li>

                <li>
                  'ddl\_only': Whether or not, for tables, to only backup DDL and not table data. Supported values:

                  <ul>
                    <li>'true': For tables, only back up DDL, not data. </li>
                    <li>'false': For tables, back up DDL and data. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'delete\_intermediate\_backups': Whether or not to delete any intermediate snapshots when the <code>backup\_type</code> is set to <code>differential</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'dry\_run': Whether or not to perform a dry run of a backup operation. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'max\_incremental\_backups\_to\_keep': Maximum number of incremental snapshots to keep. The default value is '-1'. </li>

                <li>
                  'recreate': Whether or not to replace an existing backup object with a new backup with a full snapshot, if one already exists. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_backup_request"><span className="type-signature" />create\_backup\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a database <a href="/content/admin/backup_restore/#database-backup" target="_top">backup</a>, containing a snapshot of existing objects, at the remote file store accessible via the <a href="/content/concepts/data_sinks/" target="_top">data sink</a> specified by <code>datasink\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_catalog"><span className="type-signature" />create\_catalog<span className="signature">(name, table\_format, location, type, credential, datasource, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a catalog, which contains the location and connection information for a deltalake catalog that is external to the database. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the catalog to be created.</td>
          </tr>

          <tr>
            <td className="name"><code>table\_format</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Table format (iceberg, hudi, deltalake).</td>
          </tr>

          <tr>
            <td className="name"><code>location</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Location of the catalog in 'http\[s]://\[server\[:port]]]' format.</td>
          </tr>

          <tr>
            <td className="name"><code>type</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Type of the catalog (REST (unity, polaris, tabular), nessie, hive, glue).</td>
          </tr>

          <tr>
            <td className="name"><code>credential</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the <a href="/content/concepts/credentials" target="_top">credential</a> object to be used in catalog.</td>
          </tr>

          <tr>
            <td className="name"><code>datasource</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Password for the remote system user; may be an empty string.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'access\_delegation': Use access delegation for object store. Supported values:

                  <ul>
                    <li>'datasource\_credentials' </li>
                    <li>'vended\_credentials' </li>
                  </ul>

                  The default value is 'datasource\_credentials'.
                </li>

                <li>
                  'skip\_validation': Bypass validation of connection to remote source. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_catalog_request"><span className="type-signature" />create\_catalog\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a catalog, which contains the location and connection information for a deltalake catalog that is external to the database. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_credential"><span className="type-signature" />create\_credential<span className="signature">(credential\_name, type, identity, secret, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Create a new <a href="/content/concepts/credentials/" target="_top">credential</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>credential\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the credential to be created. Must contain only letters, digits, and underscores, and cannot begin with a digit. Must not match an existing credential name.</td>
          </tr>

          <tr>
            <td className="name"><code>type</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Type of the credential to be created. Supported values:

              <ul>
                <li>'aws\_access\_key' </li>
                <li>'aws\_iam\_role' </li>
                <li>'azure\_ad' </li>
                <li>'azure\_oauth' </li>
                <li>'azure\_sas' </li>
                <li>'azure\_storage\_key' </li>
                <li>'confluent' </li>
                <li>'docker' </li>
                <li>'gcs\_service\_account\_id' </li>
                <li>'gcs\_service\_account\_keys' </li>
                <li>'hdfs' </li>
                <li>'jdbc' </li>
                <li>'kafka' </li>
                <li>'nvidia\_api\_key' </li>
                <li>'openai\_api\_key' </li>
                <li>'rest' </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>identity</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">User of the credential to be created.</td>
          </tr>

          <tr>
            <td className="name"><code>secret</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Password of the credential to be created.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_credential_request"><span className="type-signature" />create\_credential\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Create a new <a href="/content/concepts/credentials/" target="_top">credential</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_datasink"><span className="type-signature" />create\_datasink<span className="signature">(name, destination, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a <a href="/content/concepts/data_sinks/" target="_top">data sink</a>, which contains the destination information for a data sink that is external to the database. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the data sink to be created.</td>
          </tr>

          <tr>
            <td className="name"><code>destination</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Destination for the output data in format 'storage\_provider\_type://path\[:port]'. Supported storage provider types are 'azure', 'gcs', 'hdfs', 'http', 'https', 'jdbc', 'kafka', and 's3'.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'connection\_timeout': Timeout in seconds for connecting to this data sink. </li>
                <li>'wait\_timeout': Timeout in seconds for waiting for a response from this data sink. </li>
                <li>'credential': Name of the <a href="/content/concepts/credentials/" target="_top">credential</a> object to be used in this data sink. </li>
                <li>'s3\_bucket\_name': Name of the Amazon S3 bucket to use as the data sink. </li>
                <li>'s3\_region': Name of the Amazon S3 region where the given bucket is located. </li>

                <li>
                  's3\_verify\_ssl': Whether to verify SSL connections. Supported values:

                  <ul>
                    <li>'true': Connect with SSL verification. </li>
                    <li>'false': Connect without verifying the SSL connection; for testing purposes, bypassing TLS errors, self-signed certificates, etc. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  's3\_use\_virtual\_addressing': Whether to use virtual addressing when referencing the Amazon S3 sink. Supported values:

                  <ul>
                    <li>'true': The requests URI should be specified in virtual-hosted-style format where the bucket name is part of the domain name in the URL. </li>
                    <li>'false': Use path-style URI for requests. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'s3\_aws\_role\_arn': Amazon IAM Role ARN which has required S3 permissions that can be assumed for the given S3 IAM user. </li>
                <li>'s3\_encryption\_customer\_algorithm': Customer encryption algorithm used encrypting data. </li>
                <li>'s3\_encryption\_customer\_key': Customer encryption key to encrypt or decrypt data. </li>
                <li>'s3\_encryption\_type': Server side encryption type. </li>
                <li>'s3\_kms\_key\_id': KMS key. </li>
                <li>'hdfs\_kerberos\_keytab': Kerberos keytab file location for the given HDFS user. This may be a KIFS file. </li>
                <li>'hdfs\_delegation\_token': Delegation token for the given HDFS user. </li>

                <li>
                  'hdfs\_use\_kerberos': Use kerberos authentication for the given HDFS cluster. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'azure\_storage\_account\_name': Name of the Azure storage account to use as the data sink, this is valid only if tenant\_id is specified. </li>
                <li>'azure\_container\_name': Name of the Azure storage container to use as the data sink. </li>
                <li>'azure\_tenant\_id': Active Directory tenant ID (or directory ID). </li>
                <li>'azure\_sas\_token': Shared access signature token for Azure storage account to use as the data sink. </li>
                <li>'azure\_oauth\_token': Oauth token to access given storage container. </li>

                <li>
                  'azure\_use\_virtual\_addressing': Whether to use virtual addressing when referencing the Azure source. Supported values:

                  <ul>
                    <li>'true': The requests URI should be specified in virtual-hosted-style format where the bucket name is part of the domain name in the URL. </li>
                    <li>'false': Use path-style URI for requests. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'gcs\_bucket\_name': Name of the Google Cloud Storage bucket to use as the data sink. </li>
                <li>'gcs\_project\_id': Name of the Google Cloud project to use as the data sink. </li>
                <li>'gcs\_service\_account\_keys': Google Cloud service account keys to use for authenticating the data sink. </li>
                <li>'jdbc\_driver\_jar\_path': JDBC driver jar file location. </li>
                <li>'jdbc\_driver\_class\_name': Name of the JDBC driver class. </li>
                <li>'kafka\_topic\_name': Name of the Kafka topic to publish to if <code>destination</code> is a Kafka broker. </li>
                <li>'max\_batch\_size': Maximum number of records per notification message. The default value is '1'. </li>
                <li>'max\_message\_size': Maximum size in bytes of each notification message. The default value is '1000000'. </li>

                <li>
                  'json\_format': The desired format of JSON encoded notifications message. Supported values:

                  <ul>
                    <li>'flat': A single record is returned per message. </li>
                    <li>'nested': Records are returned as an array per message. </li>
                  </ul>

                  The default value is 'flat'.
                </li>

                <li>
                  'use\_managed\_credentials': When no credentials are supplied, we use anonymous access by default. If this is set, we will use cloud provider user settings. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'use\_https': Use HTTPS to connect to datasink if true, otherwise use HTTP. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'skip\_validation': Bypass validation of connection to this data sink. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_datasink_request"><span className="type-signature" />create\_datasink\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a <a href="/content/concepts/data_sinks/" target="_top">data sink</a>, which contains the destination information for a data sink that is external to the database. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_datasource"><span className="type-signature" />create\_datasource<span className="signature">(name, location, user\_name, password, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a <a href="/content/concepts/data_sources/" target="_top">data source</a>, which contains the location and connection information for a data store that is external to the database. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the data source to be created.</td>
          </tr>

          <tr>
            <td className="name"><code>location</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Location of the remote storage in 'storage\_provider\_type://\[storage\_path\[:storage\_port]]' format. Supported storage provider types are 'azure', 'gcs', 'hdfs', 'jdbc', 'kafka', 'confluent', and 's3'.</td>
          </tr>

          <tr>
            <td className="name"><code>user\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the remote system user; may be an empty string.</td>
          </tr>

          <tr>
            <td className="name"><code>password</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Password for the remote system user; may be an empty string.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'skip\_validation': Bypass validation of connection to remote source. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'connection\_timeout': Timeout in seconds for connecting to this storage provider. </li>
                <li>'wait\_timeout': Timeout in seconds for reading from this storage provider. </li>
                <li>'credential': Name of the <a href="/content/concepts/credentials" target="_top">credential</a> object to be used in data source. </li>
                <li>'s3\_bucket\_name': Name of the Amazon S3 bucket to use as the data source. </li>
                <li>'s3\_region': Name of the Amazon S3 region where the given bucket is located. </li>

                <li>
                  's3\_verify\_ssl': Whether to verify SSL connections. Supported values:

                  <ul>
                    <li>'true': Connect with SSL verification. </li>
                    <li>'false': Connect without verifying the SSL connection; for testing purposes, bypassing TLS errors, self-signed certificates, etc. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  's3\_use\_virtual\_addressing': Whether to use virtual addressing when referencing the Amazon S3 source. Supported values:

                  <ul>
                    <li>'true': The requests URI should be specified in virtual-hosted-style format where the bucket name is part of the domain name in the URL. </li>
                    <li>'false': Use path-style URI for requests. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'s3\_aws\_role\_arn': Amazon IAM Role ARN which has required S3 permissions that can be assumed for the given S3 IAM user. </li>
                <li>'s3\_encryption\_customer\_algorithm': Customer encryption algorithm used encrypting data. </li>
                <li>'s3\_encryption\_customer\_key': Customer encryption key to encrypt or decrypt data. </li>
                <li>'hdfs\_kerberos\_keytab': Kerberos keytab file location for the given HDFS user. This may be a KIFS file. </li>
                <li>'hdfs\_delegation\_token': Delegation token for the given HDFS user. </li>

                <li>
                  'hdfs\_use\_kerberos': Use kerberos authentication for the given HDFS cluster. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'azure\_storage\_account\_name': Name of the Azure storage account to use as the data source, this is valid only if tenant\_id is specified. </li>
                <li>'azure\_container\_name': Name of the Azure storage container to use as the data source. </li>
                <li>'azure\_tenant\_id': Active Directory tenant ID (or directory ID). </li>
                <li>'azure\_sas\_token': Shared access signature token for Azure storage account to use as the data source. </li>
                <li>'azure\_oauth\_token': OAuth token to access given storage container. </li>

                <li>
                  'azure\_use\_virtual\_addressing': Whether to use virtual addressing when referencing the Azure source. Supported values:

                  <ul>
                    <li>'true': The requests URI should be specified in virtual-hosted-style format where the bucket name is part of the domain name in the URL. </li>
                    <li>'false': Use path-style URI for requests. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'gcs\_bucket\_name': Name of the Google Cloud Storage bucket to use as the data source. </li>
                <li>'gcs\_project\_id': Name of the Google Cloud project to use as the data source. </li>
                <li>'gcs\_service\_account\_keys': Google Cloud service account keys to use for authenticating the data source. </li>

                <li>
                  'is\_stream': To load from Azure/GCS/S3 as a stream continuously. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'kafka\_topic\_name': Name of the Kafka topic to use as the data source. </li>
                <li>'jdbc\_driver\_jar\_path': JDBC driver jar file location. This may be a KIFS file. </li>
                <li>'jdbc\_driver\_class\_name': Name of the JDBC driver class. </li>

                <li>
                  'anonymous': Use anonymous connection to storage provider--DEPRECATED: this is now the default. Specify use\_managed\_credentials for non-anonymous connection. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'use\_managed\_credentials': When no credentials are supplied, we use anonymous access by default. If this is set, we will use cloud provider user settings. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'use\_https': Use HTTPS to connect to datasource if true, otherwise use HTTP. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'schema\_registry\_location': Location of Confluent Schema Registry in '\[storage\_path\[:storage\_port]]' format. </li>
                <li>'schema\_registry\_credential': Confluent Schema Registry <a href="/content/concepts/credentials" target="_top">credential</a> object name. </li>
                <li>'schema\_registry\_port': Confluent Schema Registry port (optional). </li>
                <li>'schema\_registry\_connection\_retries': Confluent Schema registry connection timeout (in secs). </li>
                <li>'schema\_registry\_connection\_timeout': Confluent Schema registry connection timeout (in secs). </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_datasource_request"><span className="type-signature" />create\_datasource\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a <a href="/content/concepts/data_sources/" target="_top">data source</a>, which contains the location and connection information for a data store that is external to the database. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_directory"><span className="type-signature" />create\_directory<span className="signature">(directory\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a new directory in <a href="/content/tools/kifs/" target="_top">KiFS</a>. The new directory serves as a location in which the user can upload files using <a href="/content/api/nodejs/GPUdb#upload_files"><code>GPUdb#upload\_files</code></a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>directory\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the directory in KiFS to be created.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'create\_home\_directory': When set, a home directory is created for the user name provided in the value. The <code>directory\_name</code> must be an empty string in this case. The user must exist. </li>
                <li>'data\_limit': The maximum capacity, in bytes, to apply to the created directory. Set to -1 to indicate no upper limit. If empty, the system default limit is applied. </li>

                <li>
                  'no\_error\_if\_exists': If <code>true</code>, does not return an error if the directory already exists. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_directory_request"><span className="type-signature" />create\_directory\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a new directory in <a href="/content/tools/kifs/" target="_top">KiFS</a>. The new directory serves as a location in which the user can upload files using <a href="/content/api/nodejs/GPUdb#upload_files"><code>GPUdb#upload\_files</code></a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_environment"><span className="type-signature" />create\_environment<span className="signature">(environment\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a new environment which can be used by <a href="/content/concepts/udf/" target="_top">user-defined functions</a> (UDF). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>environment\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the environment to be created.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_environment_request"><span className="type-signature" />create\_environment\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a new environment which can be used by <a href="/content/concepts/udf/" target="_top">user-defined functions</a> (UDF). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_graph"><span className="type-signature" />create\_graph<span className="signature">(graph\_name, directed\_graph, nodes, edges, weights, restrictions, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new graph network using given nodes, edges, weights, and restrictions.
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, the <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a>, and/or some <a href="/content/guides/tags/graph" target="_top">graph examples</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>graph\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the graph resource to generate.</td>
          </tr>

          <tr>
            <td className="name"><code>directed\_graph</code></td>
            <td className="type"> <span className="param-type">Boolean</span> </td>

            <td className="description last">
              If set to <code>true</code>, the graph will be directed. If set to <code>false</code>, the graph will not be directed. Consult <a href="/content/graph_solver/network_graph_solver/#directed-graphs" target="_top">Directed Graphs</a> for more details. Supported values:

              <ul>
                <li><code>true</code> </li>
                <li><code>false</code> </li>
              </ul>

              The default value is <code>true</code>.
            </td>
          </tr>

          <tr>
            <td className="name"><code>nodes</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Nodes represent fundamental topological units of a graph. Nodes must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS NODE\_ID', expressions, e.g., 'ST\_MAKEPOINT(column1, column2) AS NODE\_WKTPOINT', or constant values, e.g., '{"{"}9, 10, 11{"}"} AS NODE\_ID'. If using constant values in an identifier combination, the number of values specified must match across the combination.</td>
          </tr>

          <tr>
            <td className="name"><code>edges</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Edges represent the required fundamental topological unit of a graph that typically connect nodes. Edges must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS EDGE\_ID', expressions, e.g., 'SUBSTR(column, 1, 6) AS EDGE\_NODE1\_NAME', or constant values, e.g., "{"{"}'family', 'coworker'{"}"} AS EDGE\_LABEL". If using constant values in an identifier combination, the number of values specified must match across the combination.</td>
          </tr>

          <tr>
            <td className="name"><code>weights</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Weights represent a method of informing the graph solver of the cost of including a given edge in a solution. Weights must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS WEIGHTS\_EDGE\_ID', expressions, e.g., 'ST\_LENGTH(wkt) AS WEIGHTS\_VALUESPECIFIED', or constant values, e.g., '{"{"}4, 15{"}"} AS WEIGHTS\_VALUESPECIFIED'. If using constant values in an identifier combination, the number of values specified must match across the combination.</td>
          </tr>

          <tr>
            <td className="name"><code>restrictions</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Restrictions represent a method of informing the graph solver which edges and/or nodes should be ignored for the solution. Restrictions must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS RESTRICTIONS\_EDGE\_ID', expressions, e.g., 'column/2 AS RESTRICTIONS\_VALUECOMPARED', or constant values, e.g., '{"{"}0, 0, 0, 1{"}"} AS RESTRICTIONS\_ONOFFCOMPARED'. If using constant values in an identifier combination, the number of values specified must match across the combination.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'merge\_tolerance': If node geospatial positions are input (e.g., WKTPOINT, X, Y), determines the minimum separation allowed between unique nodes. If nodes are within the tolerance of each other, they will be merged as a single node. The default value is '1.0E-5'. </li>

                <li>
                  'recreate': If set to <code>true</code> and the graph (using <code>graph\_name</code>) already exists, the graph is deleted and recreated. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'save\_persist': If set to <code>true</code>, the graph will be saved in the persist directory (see the <a href="/content/config/#config-main-persistence" target="_top">config reference</a> for more information). If set to <code>false</code>, the graph will be removed when the graph server is shutdown. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'add\_table\_monitor': Adds a table monitor to every table used in the creation of the graph; this table monitor will trigger the graph to update dynamically upon inserts to the source table(s). Note that upon database restart, if <code>save\_persist</code> is also set to <code>true</code>, the graph will be fully reconstructed and the table monitors will be reattached. For more details on table monitors, see <a href="/content/api/nodejs/GPUdb#create_table_monitor"><code>GPUdb#create\_table\_monitor</code></a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'graph\_table': If specified, the created graph is also created as a table with the given name, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. The table will have the following identifier columns: 'EDGE\_ID', 'EDGE\_NODE1\_ID', 'EDGE\_NODE2\_ID'. If left blank, no table is created. The default value is ''. </li>

                <li>
                  'add\_turns': Adds dummy 'pillowed' edges around intersection nodes where there are more than three edges so that additional weight penalties can be imposed by the solve endpoints. (increases the total number of edges). Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'is\_partitioned': Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'server\_id': Indicates which graph server(s) to send the request to. Default is to send to the server with the most available memory. </li>

                <li>
                  'use\_rtree': Use an range tree structure to accelerate and improve the accuracy of snapping, especially to edges. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'label\_delimiter': If provided the label string will be split according to this delimiter and each sub-string will be applied as a separate label onto the specified edge. The default value is ''. </li>

                <li>
                  'allow\_multiple\_edges': Multigraph choice; allowing multiple edges with the same node pairs if set to true, otherwise, new edges with existing same node pairs will not be inserted. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'embedding\_table': If table exists (should be generated by the match/graph match\_embedding solver), the vector embeddings for the newly inserted nodes will be appended into this table. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_graph_request"><span className="type-signature" />create\_graph\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new graph network using given nodes, edges, weights, and restrictions.
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, the <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a>, and/or some <a href="/content/guides/tags/graph" target="_top">graph examples</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_job"><span className="type-signature" />create\_job<span className="signature">(endpoint, request\_encoding, data, data\_str, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Create a job which will run asynchronously. The response returns a job ID, which can be used to query the status and result of the job. The status and the result of the job upon completion can be requested by <a href="/content/api/nodejs/GPUdb#get_job"><code>GPUdb#get\_job</code></a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>endpoint</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Indicates which endpoint to execute, e.g. '/alter/table'.</td>
          </tr>

          <tr>
            <td className="name"><code>request\_encoding</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              The encoding of the request payload for the job. Supported values:

              <ul>
                <li>'binary' </li>
                <li>'json' </li>
                <li>'snappy' </li>
              </ul>

              The default value is 'binary'.
            </td>
          </tr>

          <tr>
            <td className="name"><code>data</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Binary-encoded payload for the job to be run asynchronously. The payload must contain the relevant input parameters for the endpoint indicated in <code>endpoint</code>. Please see the documentation for the appropriate endpoint to see what values must (or can) be specified. If this parameter is used, then <code>request\_encoding</code> must be <code>binary</code> or <code>snappy</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>data\_str</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">JSON-encoded payload for the job to be run asynchronously. The payload must contain the relevant input parameters for the endpoint indicated in <code>endpoint</code>. Please see the documentation for the appropriate endpoint to see what values must (or can) be specified. If this parameter is used, then <code>request\_encoding</code> must be <code>json</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'job\_tag': Tag to use for submitted job. The same tag could be used on backup cluster to retrieve response for the job. Tags can use letter, numbers, '\_' and '-'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_job_request"><span className="type-signature" />create\_job\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Create a job which will run asynchronously. The response returns a job ID, which can be used to query the status and result of the job. The status and the result of the job upon completion can be requested by <a href="/content/api/nodejs/GPUdb#get_job"><code>GPUdb#get\_job</code></a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_join_table"><span className="type-signature" />create\_join\_table<span className="signature">(join\_table\_name, table\_names, column\_names, expressions, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a table that is the result of a SQL JOIN.
        <p> For join details and examples see: <a href="/content/concepts/joins/" target="_top">Joins</a>. For limitations, see <a href="/content/concepts/joins/#limitations-cautions" target="_top">Join Limitations and Cautions</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>join\_table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the join table to be created, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">The list of table names composing the join, each in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Corresponds to a SQL statement FROM clause.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of member table columns or column expressions to be included in the join. Columns can be prefixed with 'table\_id.column\_name', where 'table\_id' is the table name or alias. Columns can be aliased via the syntax 'column\_name as alias'. Wild cards '\*' can be used to include all columns across member tables or 'table\_id.\*' for all of a single table's columns. Columns and column expressions composing the join must be uniquely named or aliased--therefore, the '\*' wild card cannot be used if column names aren't unique across all tables.</td>
          </tr>

          <tr>
            <td className="name"><code>expressions</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">An optional list of expressions to combine and filter the joined tables. Corresponds to a SQL statement WHERE clause. For details see: <a href="/content/concepts/expressions/" target="_top">expressions</a>. The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>join\_table\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_join\_table\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the join as part of <code>join\_table\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the join. If the schema is non-existent, it will be automatically created. The default value is ''. </li>
                <li>'max\_query\_dimensions': No longer used. </li>
                <li>'strategy\_definition': The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the join table specified in <code>join\_table\_name</code>. </li>
                <li>'view\_id': View this projection is part of. The default value is ''. </li>
                <li>'no\_count': Return a count of 0 for the join table for logging and for <a href="/content/api/nodejs/GPUdb#show_table"><code>GPUdb#show\_table</code></a>; optimization needed for large overlapped equi-join stencils. The default value is 'false'. </li>
                <li>'chunk\_size': Maximum number of records per joined-chunk for this table. Defaults to the gpudb.conf file chunk size. </li>
                <li>'enable\_virtual\_chunking': Collect chunks with accumulated size less than chunk\_size into a single chunk. The default value is 'false'. </li>
                <li>'max\_virtual\_chunk\_size': Maximum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk\_size if virtual chunking otherwise enabled. </li>
                <li>'min\_virtual\_chunk\_size': Minimum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk\_size if virtual chunking otherwise enabled. </li>
                <li>'enable\_sparse\_virtual\_chunking': Materialize virtual chunks with only non-deleted values. The default value is 'false'. </li>
                <li>'enable\_equi\_join\_lazy\_result\_store': Allow using the lazy result store to cache computation of one side of a multichunk equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join. </li>
                <li>'enable\_predicate\_equi\_join\_lazy\_result\_store': Allow using the lazy result store to cache computation of one side of a multichunk predicate-equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join. </li>
                <li>'enable\_pk\_equi\_join': Use equi-join to do primary key joins rather than using primary key index. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_join_table_request"><span className="type-signature" />create\_join\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a table that is the result of a SQL JOIN.
        <p> For join details and examples see: <a href="/content/concepts/joins/" target="_top">Joins</a>. For limitations, see <a href="/content/concepts/joins/#limitations-cautions" target="_top">Join Limitations and Cautions</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_materialized_view"><span className="type-signature" />create\_materialized\_view<span className="signature">(table\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Initiates the process of creating a materialized view, reserving the view's name to prevent other views or tables from being created with that name.
        <p> For materialized view details and examples, see <a href="/content/concepts/materialized_views/" target="_top">Materialized Views</a>. </p>
        <p> The response contains <code>view\_id</code>, which is used to tag each subsequent operation (projection, union, aggregation, filter, or join) that will compose the view. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to be created that is the top-level table of the materialized view, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the materialized view as part of <code>table\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema which is to contain the newly created view. If the schema provided is non-existent, it will be automatically created. </li>
                <li>'execute\_as': User name to use to run the refresh job. </li>

                <li>
                  'build\_materialized\_view\_policy': Sets startup materialized view rebuild scheme. Supported values:

                  <ul>
                    <li>'always': Rebuild as many materialized views as possible before accepting requests. </li>
                    <li>'lazy': Rebuild the necessary materialized views at start, and load the remainder lazily. </li>
                    <li>'on\_demand': Rebuild materialized views as requests use them. </li>
                    <li>'system': Rebuild materialized views using the system-configured default. </li>
                  </ul>

                  The default value is 'system'.
                </li>

                <li>
                  'persist': If <code>true</code>, then the materialized view specified in <code>table\_name</code> will be persisted and will not expire unless a <code>ttl</code> is specified. If <code>false</code>, then the materialized view will be an in-memory table and will expire unless a <code>ttl</code> is specified otherwise. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'enable\_mv\_input\_wrappers': If <code>true</code>, each base table the view reads is accessed through a wrapper view so an in-progress out-of-place update cannot make a record momentarily disappear from the view, and a long refresh does not block updates to the base tables. Overrides the {"{"}gaia.enable\_mv\_input\_wrappers{"}"} configuration default when set. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'refresh\_span': Sets the future time-offset(in seconds) at which periodic refresh stops. </li>
                <li>'refresh\_stop\_time': When <code>refresh\_method</code> is <code>periodic</code>, specifies the time at which a periodic refresh is stopped. Value is a datetime string with format 'YYYY-MM-DD HH:MM:SS'. </li>

                <li>
                  'refresh\_method': Method by which the join can be refreshed when the data in underlying member tables have changed. Supported values:

                  <ul>
                    <li>'manual': Refresh only occurs when manually requested by calling <a href="/content/api/nodejs/GPUdb#alter_table"><code>GPUdb#alter\_table</code></a> with an 'action' of 'refresh'. </li>
                    <li>'on\_query': Refresh any time the view is queried. </li>
                    <li>'on\_change': If possible, incrementally refresh (refresh just those records added) whenever an insert, update, delete or refresh of input table is done. A full refresh is done if an incremental refresh is not possible. </li>
                    <li>'periodic': Refresh table periodically at rate specified by <code>refresh\_period</code>. </li>
                  </ul>

                  The default value is 'manual'.
                </li>

                <li>'refresh\_period': When <code>refresh\_method</code> is <code>periodic</code>, specifies the period in seconds at which refresh occurs. </li>
                <li>'refresh\_start\_time': When <code>refresh\_method</code> is <code>periodic</code>, specifies the first time at which a refresh is to be done. Value is a datetime string with format 'YYYY-MM-DD HH:MM:SS'. </li>
                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the table specified in <code>table\_name</code>. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_materialized_view_request"><span className="type-signature" />create\_materialized\_view\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Initiates the process of creating a materialized view, reserving the view's name to prevent other views or tables from being created with that name.
        <p> For materialized view details and examples, see <a href="/content/concepts/materialized_views/" target="_top">Materialized Views</a>. </p>
        <p> The response contains <code>view\_id</code>, which is used to tag each subsequent operation (projection, union, aggregation, filter, or join) that will compose the view. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_proc"><span className="type-signature" />create\_proc<span className="signature">(proc\_name, execution\_mode, files, command, args, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates an instance (proc) of the <a href="/content/concepts/udf/" target="_top">user-defined functions</a> (UDF) specified by the given command, options, and files, and makes it available for execution. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>proc\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the proc to be created. Must not be the name of a currently existing proc.</td>
          </tr>

          <tr>
            <td className="name"><code>execution\_mode</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              The execution mode of the proc. Supported values:

              <ul>
                <li>'distributed': Input table data will be divided into data segments that are distributed across all nodes in the cluster, and the proc command will be invoked once per data segment in parallel. Output table data from each invocation will be saved to the same node as the corresponding input data. </li>
                <li>'nondistributed': The proc command will be invoked only once per execution, and will not have direct access to any tables named as input or output table parameters in the call to <a href="/content/api/nodejs/GPUdb#execute_proc"><code>GPUdb#execute\_proc</code></a>. It will, however, be able to access the database using native API calls. </li>
              </ul>

              The default value is 'distributed'.
            </td>
          </tr>

          <tr>
            <td className="name"><code>files</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">A map of the files that make up the proc. The keys of the map are file names, and the values are the binary contents of the files. The file names may include subdirectory names (e.g. 'subdir/file') but must not resolve to a directory above the root for the proc. Files may be loaded from existing files in KiFS. Those file names should be prefixed with the uri kifs\:// and the values in the map should be empty. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>command</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The command (excluding arguments) that will be invoked when the proc is executed. It will be invoked from the directory containing the proc <code>files</code> and may be any command that can be resolved from that directory. It need not refer to a file actually in that directory; for example, it could be 'java' if the proc is a Java application; however, any necessary external programs must be preinstalled on every database node. If the command refers to a file in that directory, it must be preceded with './' as per Linux convention. If not specified, and exactly one file is provided in <code>files</code>, that file will be invoked. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>args</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">An array of command-line arguments that will be passed to <code>command</code> when the proc is executed. The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'max\_concurrency\_per\_node': The maximum number of concurrent instances of the proc that will be executed per node. 0 allows unlimited concurrency. The default value is '0'. </li>
                <li>'set\_environment': A python environment to use when executing the proc. Must be an existing environment, else an error will be returned. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_proc_request"><span className="type-signature" />create\_proc\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates an instance (proc) of the <a href="/content/concepts/udf/" target="_top">user-defined functions</a> (UDF) specified by the given command, options, and files, and makes it available for execution. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_projection"><span className="type-signature" />create\_projection<span className="signature">(table\_name, projection\_name, column\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new <a href="/content/concepts/projections/" target="_top">projection</a> of an existing table. A projection represents a subset of the columns (potentially including derived columns) of a table.
        <p> For projection details and examples, see <a href="/content/concepts/projections/" target="_top">Projections</a>. For limitations, see <a href="/content/concepts/projections/#limitations-and-cautions" target="_top">Projection Limitations and Cautions</a>. </p>
        <p> <a href="/content/concepts/window/" target="_top">Window functions</a>, which can perform operations like moving averages, are available through this endpoint as well as <a href="/content/api/nodejs/GPUdb#get_records_by_column"><code>GPUdb#get\_records\_by\_column</code></a>. </p>
        <p> A projection can be created with a different <a href="/content/concepts/tables/#shard-keys" target="_top">shard key</a> than the source table. By specifying <code>shard\_key</code>, the projection will be sharded according to the specified columns, regardless of how the source table is sharded. The source table can even be unsharded or replicated. </p>
        <p> If <code>table\_name</code> is empty, selection is performed against a single-row virtual table. This can be useful in executing temporal (<a href="/content/concepts/expressions/#date-time-functions" target="_top">NOW()</a>), identity (<a href="/content/concepts/expressions/#user-security-functions" target="_top">USER()</a>), or constant-based functions (<a href="/content/concepts/expressions/#scalar-functions" target="_top">GEODIST(-77.11, 38.88, -71.06, 42.36)</a>). </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the existing table on which the projection is to be applied, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. An empty table name creates a projection from a single-row virtual table, where columns specified should be constants or constant expressions.</td>
          </tr>

          <tr>
            <td className="name"><code>projection\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the projection to be created, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of columns from <code>table\_name</code> to be included in the projection. Can include derived columns. Can be specified as aliased via the syntax 'column\_name as alias'.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>projection\_name</code>. If <code>persist</code> is <code>false</code> (or unspecified), then this is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_projection\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the projection as part of <code>projection\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the projection. If the schema is non-existent, it will be automatically created. The default value is ''. </li>
                <li>'expression': An optional filter <a href="/content/concepts/expressions/" target="_top">expression</a> to be applied to the source table prior to the projection. The default value is ''. </li>

                <li>
                  'is\_replicated': If <code>true</code> then the projection will be replicated even if the source table is not. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'offset': The number of initial results to skip (this can be useful for paging through the results). The default value is '0'. </li>
                <li>'limit': The number of records to keep. The default value is '-9999'. </li>
                <li>'order\_by': Comma-separated list of the columns to be sorted by; e.g. 'timestamp asc, x desc'. The columns specified must be present in <code>column\_names</code>. If any alias is given for any column name, the alias must be used, rather than the original column name. The default value is ''. </li>
                <li>'chunk\_size': Indicates the number of records per chunk to be used for this projection. </li>
                <li>'chunk\_column\_max\_memory': Indicates the target maximum data size for each column in a chunk to be used for this projection. </li>
                <li>'chunk\_max\_memory': Indicates the target maximum data size for all columns in a chunk to be used for this projection. </li>
                <li>'create\_indexes': Comma-separated list of columns on which to create indexes on the projection. The columns specified must be present in <code>column\_names</code>. If any alias is given for any column name, the alias must be used, rather than the original column name. </li>
                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the projection specified in <code>projection\_name</code>. </li>
                <li>'shard\_key': Comma-separated list of the columns to be sharded on; e.g. 'column1, column2'. The columns specified must be present in <code>column\_names</code>. If any alias is given for any column name, the alias must be used, rather than the original column name. The default value is ''. </li>

                <li>
                  'persist': If <code>true</code>, then the projection specified in <code>projection\_name</code> will be persisted and will not expire unless a <code>ttl</code> is specified. If <code>false</code>, then the projection will be an in-memory table and will expire unless a <code>ttl</code> is specified otherwise. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'preserve\_dict\_encoding': If <code>true</code>, then columns that were dict encoded in the source table will be dict encoded in the projection. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'retain\_partitions': Determines whether the created projection will retain the partitioning scheme from the source table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'partition\_type': <a href="/content/concepts/tables/#partitioning" target="_top">Partitioning</a> scheme to use. Supported values:

                  <ul>
                    <li>'RANGE': Use <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>. </li>
                    <li>'INTERVAL': Use <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>. </li>
                    <li>'LIST': Use <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>. </li>
                    <li>'HASH': Use <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>. </li>
                    <li>'SERIES': Use <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a>. </li>
                  </ul>
                </li>

                <li>'partition\_keys': Comma-separated list of partition keys, which are the columns or column expressions by which records will be assigned to partitions defined by <code>partition\_definitions</code>. </li>
                <li>'partition\_definitions': Comma-separated list of partition definitions, whose format depends on the choice of <code>partition\_type</code>. See <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>, or <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a> for example formats. </li>

                <li>
                  'is\_automatic\_partition': If <code>true</code>, a new partition will be created for values which don't fall into an existing partition. Currently only supported for <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitions</a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'view\_id': ID of view of which this projection is a member. The default value is ''. </li>
                <li>'strategy\_definition': The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression codec</a> for the projection's columns. </li>
                <li>'join\_window\_functions': If set, window functions which require a reshard will be computed separately and joined back together, if the width of the projection is greater than the join\_window\_functions\_threshold. The default value is 'true'. </li>
                <li>'join\_window\_functions\_threshold': If the projection is greater than this width (in bytes), then window functions which require a reshard will be computed separately and joined back together. The default value is ''. </li>
                <li>'qualify\_filter': An optional filter <a href="/content/concepts/expressions/" target="_top">expression</a> applied to the projection after window function evaluation, equivalent to a SQL QUALIFY clause. May reference window function aliases as well as any other column in the projection. Rows for which the expression evaluates to false (or NULL) are removed from the projection. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_projection_request"><span className="type-signature" />create\_projection\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new <a href="/content/concepts/projections/" target="_top">projection</a> of an existing table. A projection represents a subset of the columns (potentially including derived columns) of a table.
        <p> For projection details and examples, see <a href="/content/concepts/projections/" target="_top">Projections</a>. For limitations, see <a href="/content/concepts/projections/#limitations-and-cautions" target="_top">Projection Limitations and Cautions</a>. </p>
        <p> <a href="/content/concepts/window/" target="_top">Window functions</a>, which can perform operations like moving averages, are available through this endpoint as well as <a href="/content/api/nodejs/GPUdb#get_records_by_column"><code>GPUdb#get\_records\_by\_column</code></a>. </p>
        <p> A projection can be created with a different <a href="/content/concepts/tables/#shard-keys" target="_top">shard key</a> than the source table. By specifying <code>shard\_key</code>, the projection will be sharded according to the specified columns, regardless of how the source table is sharded. The source table can even be unsharded or replicated. </p>
        <p> If <code>table\_name</code> is empty, selection is performed against a single-row virtual table. This can be useful in executing temporal (<a href="/content/concepts/expressions/#date-time-functions" target="_top">NOW()</a>), identity (<a href="/content/concepts/expressions/#user-security-functions" target="_top">USER()</a>), or constant-based functions (<a href="/content/concepts/expressions/#scalar-functions" target="_top">GEODIST(-77.11, 38.88, -71.06, 42.36)</a>). </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_resource_group"><span className="type-signature" />create\_resource\_group<span className="signature">(name, tier\_attributes, ranking, adjoining\_resource\_group, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a new resource group to facilitate resource management. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the group to be created. Must contain only letters, digits, and underscores, and cannot begin with a digit. Must not match existing resource group name.</td>
          </tr>

          <tr>
            <td className="name"><code>tier\_attributes</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional map containing tier names and their respective attribute group limits. The only valid attribute limit that can be set is max\_memory (in bytes) for the VRAM and RAM tiers. For instance, to set max VRAM capacity to 1GB per rank per GPU and max RAM capacity to 10GB per rank, use: {"{"}'VRAM':{"{"}'max\_memory':'1000000000'{"}"}, 'RAM':{"{"}'max\_memory':'10000000000'{"}"}{"}"}.

              <ul>
                <li>'max\_memory': Maximum amount of memory usable at one time, per rank, per GPU, for the VRAM tier; or maximum amount of memory usable at one time, per rank, for the RAM tier. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>ranking</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Indicates the relative ranking among existing resource groups where this new resource group will be placed. Supported values:

              <ul>
                <li>'first': Make this resource group the new first one in the ordering. </li>
                <li>'last': Make this resource group the new last one in the ordering. </li>
                <li>'before': Place this resource group before the one specified by <code>adjoining\_resource\_group</code> in the ordering. </li>
                <li>'after': Place this resource group after the one specified by <code>adjoining\_resource\_group</code> in the ordering. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>adjoining\_resource\_group</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If <code>ranking</code> is <code>before</code> or <code>after</code>, this field indicates the resource group before or after which the current group will be placed; otherwise, leave blank. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'max\_cpu\_concurrency': Maximum number of simultaneous threads that will be used to execute a request, per rank, for this group. The minimum allowed value is '4'. </li>
                <li>'max\_data': Maximum amount of data, per rank, in bytes, that can be used by all database objects within this group. Set to -1 to indicate no upper limit. The minimum allowed value is '-1'. </li>
                <li>'max\_scheduling\_priority': Maximum priority of a scheduled task for this group. The minimum allowed value is '1'. The maximum allowed value is '100'. </li>
                <li>'max\_tier\_priority': Maximum priority of a tiered object for this group. The minimum allowed value is '1'. The maximum allowed value is '10'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_resource_group_request"><span className="type-signature" />create\_resource\_group\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a new resource group to facilitate resource management. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_role"><span className="type-signature" />create\_role<span className="signature">(name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new role.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the role to be created. Must contain only lowercase letters, digits, and underscores, and cannot begin with a digit. Must not be the same name as an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'resource\_group': Name of an existing resource group to associate with this user. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_role_request"><span className="type-signature" />create\_role\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new role.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_schema"><span className="type-signature" />create\_schema<span className="signature">(schema\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a SQL-style <a href="/content/concepts/schemas/" target="_top">schema</a>. Schemas are containers for tables and views. Multiple tables and views can be defined with the same name in different schemas. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>schema\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the schema to be created. Has the same naming restrictions as <a href="/content/concepts/tables/" target="_top">tables</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_exists': If <code>true</code>, prevents an error from occurring if the schema already exists. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_schema_request"><span className="type-signature" />create\_schema\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a SQL-style <a href="/content/concepts/schemas/" target="_top">schema</a>. Schemas are containers for tables and views. Multiple tables and views can be defined with the same name in different schemas. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_table"><span className="type-signature" />create\_table<span className="signature">(table\_name, type\_id, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new table with the given type (definition of columns). The type is specified in <code>type\_id</code> as either a numerical type ID (as returned by <a href="/content/api/nodejs/GPUdb#create_type"><code>GPUdb#create\_type</code></a>) or as a list of columns, each specified as a list of the column name, data type, and any column attributes.
        <p> Example of a type definition with some parameters: </p>
        <pre>    \[<br />        \["id", "int8", "primary\_key"],<br />        \["dept\_id", "int8", "primary\_key", "shard\_key"],<br />        \["manager\_id", "int8", "nullable"],<br />        \["first\_name", "char32"],<br />        \["last\_name", "char64"],<br />        \["salary", "decimal"],<br />        \["hire\_date", "date"]<br />    ]</pre>
        Each column definition consists of the column name (which should meet the standard <a href="/content/concepts/tables/#table-naming-criteria" target="_top">column naming criteria</a>), the column's <a href="/content/concepts/types/#types-chart" target="_top">specific type</a> (int, long, float, double, string, bytes, or any of the properties map values from <a href="/content/api/nodejs/GPUdb#create_type"><code>GPUdb#create\_type</code></a>), and any <a href="/content/concepts/types/#types-data-handling" target="_top">data handling</a>, <a href="/content/concepts/types/#types-data-keys" target="_top">data key</a>, or <a href="/content/concepts/types/#types-data-replace" target="_top">data replacement</a> properties.
        <p> A table may optionally be designated to use a <a href="/content/concepts/tables/#replication" target="_top">replicated</a> distribution scheme, or be assigned: <a href="/content/concepts/tables/#foreign-keys" target="_top">foreign keys</a> to other tables, a <a href="/content/concepts/tables/#partitioning" target="_top">partitioning</a> scheme, and/or a <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to be created, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Error for requests with existing table of the same name and type ID may be suppressed by using the <code>no\_error\_if\_exists</code> option.</td>
          </tr>

          <tr>
            <td className="name"><code>type\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The type for the table, specified as either an existing table's numerical type ID (as returned by <a href="/content/api/nodejs/GPUdb#create_type"><code>GPUdb#create\_type</code></a>) or a type definition (as described above).</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_exists': If <code>true</code>, prevents an error from occurring if the table already exists and is of the given type. If a table with the same ID but a different type exists, it is still an error. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>table\_name</code>. If <code>is\_result\_table</code> is <code>true</code>, then this is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_table\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema as part of <code>table\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema which is to contain the newly created table. If the schema is non-existent, it will be automatically created. </li>

                <li>
                  'is\_collection': \[DEPRECATED--please use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create a schema instead] Indicates whether to create a schema instead of a table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'is\_replicated': Affects the <a href="/content/concepts/tables/#distribution" target="_top">distribution scheme</a> for the table's data. If <code>true</code> and the given type has no explicit <a href="/content/concepts/tables/#shard-key" target="_top">shard key</a> defined, the table will be <a href="/content/concepts/tables/#replication" target="_top">replicated</a>. If <code>false</code>, the table will be <a href="/content/concepts/tables/#sharding" target="_top">sharded</a> according to the shard key specified in the given <code>type\_id</code>, or <a href="/content/concepts/tables/#random-sharding" target="_top">randomly sharded</a>, if no shard key is specified. Note that a type containing a shard key cannot be used to create a replicated table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'foreign\_keys': Semicolon-separated list of <a href="/content/concepts/tables/#foreign-keys" target="_top">foreign keys</a>, of the format '(source\_column\_name \[, ...]) references target\_table\_name(primary\_key\_column\_name \[, ...]) \[as foreign\_key\_name]'. </li>
                <li>'foreign\_shard\_key': Foreign shard key of the format 'source\_column references shard\_by\_column from target\_table(primary\_key\_column)'. </li>

                <li>
                  'partition\_type': <a href="/content/concepts/tables/#partitioning" target="_top">Partitioning</a> scheme to use. Supported values:

                  <ul>
                    <li>'RANGE': Use <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>. </li>
                    <li>'INTERVAL': Use <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>. </li>
                    <li>'LIST': Use <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>. </li>
                    <li>'HASH': Use <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>. </li>
                    <li>'SERIES': Use <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a>. </li>
                  </ul>
                </li>

                <li>'partition\_keys': Comma-separated list of partition keys, which are the columns or column expressions by which records will be assigned to partitions defined by <code>partition\_definitions</code>. </li>
                <li>'partition\_definitions': Comma-separated list of partition definitions, whose format depends on the choice of <code>partition\_type</code>. See <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>, or <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a> for example formats. </li>

                <li>
                  'is\_automatic\_partition': If <code>true</code>, a new partition will be created for values which don't fall into an existing partition. Currently only supported for <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitions</a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the table specified in <code>table\_name</code>. </li>
                <li>'chunk\_size': Indicates the number of records per chunk to be used for this table. </li>
                <li>'chunk\_column\_max\_memory': Indicates the target maximum data size for each column in a chunk to be used for this table. </li>
                <li>'chunk\_max\_memory': Indicates the target maximum data size for all columns in a chunk to be used for this table. </li>

                <li>
                  'is\_result\_table': Indicates whether the table is a <a href="/content/concepts/tables_memory_only/" target="_top">memory-only table</a>. A result table cannot contain columns with text\_search <a href="/content/concepts/types/#data-handling" target="_top">data-handling</a>, and it will not be retained if the server is restarted. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'strategy\_definition': The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression codec</a> for this table's columns. </li>

                <li>
                  'load\_vectors\_policy': Set startup data loading scheme for the table. Supported values:

                  <ul>
                    <li>'always': Load as much vector data as possible into memory before accepting requests. </li>
                    <li>'lazy': Load the necessary vector data at start, and load the remainder lazily. </li>
                    <li>'on\_demand': Load vector data as requests use it. </li>
                    <li>'system': Load vector data using the system-configured default. </li>
                  </ul>

                  The default value is 'system'.
                </li>

                <li>
                  'build\_pk\_index\_policy': Set startup primary-key index generation scheme for the table. Supported values:

                  <ul>
                    <li>'always': Generate as much primary key index data as possible before accepting requests. </li>
                    <li>'lazy': Generate the necessary primary key index data at start, and load the remainder lazily. </li>
                    <li>'on\_demand': Generate primary key index data as requests use it. </li>
                    <li>'system': Generate primary key index data using the system-configured default. </li>
                  </ul>

                  The default value is 'system'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_table_external"><span className="type-signature" />create\_table\_external<span className="signature">(table\_name, filepaths, modify\_columns, create\_table\_options, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new <a href="/content/concepts/external_tables/" target="_top">external table</a>, which is a local database object whose source data is located externally to the database. The source data can be located either in <a href="/content/tools/kifs/" target="_top">KiFS</a>; on the cluster, accessible to the database; or remotely, accessible via a pre-defined external <a href="/content/concepts/data_sources/" target="_top">data source</a>.
        <p> The external table can have its structure defined explicitly, via <code>create\_table\_options</code>, which contains many of the options from <a href="/content/api/nodejs/GPUdb#create_table"><code>GPUdb#create\_table</code></a>; or defined implicitly, inferred from the source data. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to be created, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>filepaths</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">A list of file paths from which data will be sourced; For paths in <a href="/content/tools/kifs/" target="_top">KiFS</a>, use the URI prefix of kifs\:// followed by the path to a file or directory. File matching by prefix is supported, e.g. kifs\://dir/file would match dir/file\_1 and dir/file\_2. When prefix matching is used, the path must start with a full, valid KiFS directory name. If an external data source is specified in <code>datasource\_name</code>, these file paths must resolve to accessible files at that data source location. Prefix matching is supported. If the data source is hdfs, prefixes must be aligned with directories, i.e. partial file names will not match. If no data source is specified, the files are assumed to be local to the database and must all be accessible to the gpudb user, residing on the path (or relative to the path) specified by the external files directory in the Kinetica <a href="/content/config/#config-main-external-files" target="_top">configuration file</a>. Wildcards (\*) can be used to specify a group of files. Prefix matching is supported, the prefixes must be aligned with directories. If the first path ends in .tsv, the text delimiter will be defaulted to a tab character. If the first path ends in .psv, the text delimiter will be defaulted to a pipe character (|).</td>
          </tr>

          <tr>
            <td className="name"><code>modify\_columns</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Not implemented yet. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>create\_table\_options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Options from <a href="/content/api/nodejs/GPUdb#create_table"><code>GPUdb#create\_table</code></a>, allowing the structure of the table to be defined independently of the data source.

              <ul>
                <li>'type\_id': ID of a currently registered <a href="/content/concepts/types/" target="_top">type</a>. </li>

                <li>
                  'no\_error\_if\_exists': If <code>true</code>, prevents an error from occurring if the table already exists and is of the given type. If a table with the same name but a different type exists, it is still an error. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'is\_replicated': Affects the <a href="/content/concepts/tables/#distribution" target="_top">distribution scheme</a> for the table's data. If <code>true</code> and the given table has no explicit <a href="/content/concepts/tables/#shard-key" target="_top">shard key</a> defined, the table will be <a href="/content/concepts/tables/#replication" target="_top">replicated</a>. If <code>false</code>, the table will be <a href="/content/concepts/tables/#sharding" target="_top">sharded</a> according to the shard key specified in the given <code>type\_id</code>, or <a href="/content/concepts/tables/#random-sharding" target="_top">randomly sharded</a>, if no shard key is specified. Note that a type containing a shard key cannot be used to create a replicated table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'foreign\_keys': Semicolon-separated list of <a href="/content/concepts/tables/#foreign-keys" target="_top">foreign keys</a>, of the format '(source\_column\_name \[, ...]) references target\_table\_name(primary\_key\_column\_name \[, ...]) \[as foreign\_key\_name]'. </li>
                <li>'foreign\_shard\_key': Foreign shard key of the format 'source\_column references shard\_by\_column from target\_table(primary\_key\_column)'. </li>

                <li>
                  'partition\_type': <a href="/content/concepts/tables/#partitioning" target="_top">Partitioning</a> scheme to use. Supported values:

                  <ul>
                    <li>'RANGE': Use <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>. </li>
                    <li>'INTERVAL': Use <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>. </li>
                    <li>'LIST': Use <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>. </li>
                    <li>'HASH': Use <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>. </li>
                    <li>'SERIES': Use <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a>. </li>
                  </ul>
                </li>

                <li>'partition\_keys': Comma-separated list of partition keys, which are the columns or column expressions by which records will be assigned to partitions defined by <code>partition\_definitions</code>. </li>
                <li>'partition\_definitions': Comma-separated list of partition definitions, whose format depends on the choice of <code>partition\_type</code>. See <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>, or <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a> for example formats. </li>

                <li>
                  'is\_automatic\_partition': If <code>true</code>, a new partition will be created for values which don't fall into an existing partition. Currently, only supported for <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitions</a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the table specified in <code>table\_name</code>. </li>
                <li>'chunk\_size': Indicates the number of records per chunk to be used for this table. </li>
                <li>'chunk\_column\_max\_memory': Indicates the target maximum data size for each column in a chunk to be used for this table. </li>
                <li>'chunk\_max\_memory': Indicates the target maximum data size for all columns in a chunk to be used for this table. </li>

                <li>
                  'is\_result\_table': Indicates whether the table is a <a href="/content/concepts/tables_memory_only/" target="_top">memory-only table</a>. A result table cannot contain columns with text\_search <a href="/content/concepts/types/#data-handling" target="_top">data-handling</a>, and it will not be retained if the server is restarted. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'strategy\_definition': The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression codec</a> for this table's columns. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'bad\_record\_table\_name': Name of a table to which records that were rejected are written. The bad-record-table has the following columns: line\_number (long), line\_rejected (string), error\_message (string). When <code>error\_handling</code> is <code>abort</code>, bad records table is not populated. </li>
                <li>'bad\_record\_table\_limit': A positive integer indicating the maximum number of records that can be written to the bad-record-table. The default value is '10000'. </li>
                <li>'bad\_record\_table\_limit\_per\_input': For subscriptions, a positive integer indicating the maximum number of records that can be written to the bad-record-table per file/payload. Default value will be <code>bad\_record\_table\_limit</code> and total size of the table per rank is limited to <code>bad\_record\_table\_limit</code>. </li>
                <li>'batch\_size': Number of records to insert per batch when inserting data. The default value is '50000'. </li>
                <li>'column\_formats': For each target column specified, applies the column-property-bound format to the source data loaded into that column. Each column format will contain a mapping of one or more of its column properties to an appropriate format for each property. Currently supported column properties include date, time, and datetime. The parameter value must be formatted as a JSON string of maps of column names to maps of column properties to their corresponding column formats, e.g., '{"{"} "order\_date" : {"{"} "date" : "%Y.%m.%d" {"}"}, "order\_time" : {"{"} "time" : "%H:%M:%S" {"}"} {"}"}'. See <code>default\_column\_formats</code> for valid format syntax. </li>
                <li>'columns\_to\_load': Specifies a comma-delimited list of columns from the source data to load. If more than one file is being loaded, this list applies to all files. Column numbers can be specified discretely or as a range. For example, a value of '5,7,1..3' will insert values from the fifth column in the source data into the first column in the target table, from the seventh column in the source data into the second column in the target table, and from the first through third columns in the source data into the third through fifth columns in the target table. If the source data contains a header, column names matching the file header names may be provided instead of column numbers. If the target table doesn't exist, the table will be created with the columns in this order. If the target table does exist with columns in a different order than the source data, this list can be used to match the order of the target table. For example, a value of 'C, B, A' will create a three column table with column C, followed by column B, followed by column A; or will insert those fields in that order into a table created with columns in that order. If the target table exists, the column names must match the source data field names for a name-mapping to be successful. Mutually exclusive with <code>columns\_to\_skip</code>. </li>
                <li>'columns\_to\_skip': Specifies a comma-delimited list of columns from the source data to skip. Mutually exclusive with <code>columns\_to\_load</code>. </li>

                <li>
                  'compression\_type': Source data compression type. Supported values:

                  <ul>
                    <li>'none': No compression. </li>
                    <li>'auto': Auto detect compression type. </li>
                    <li>'gzip': gzip file compression. </li>
                    <li>'bzip2': bzip2 file compression. </li>
                  </ul>

                  The default value is 'auto'.
                </li>

                <li>'datasource\_name': Name of an existing external data source from which data file(s) specified in <code>filepaths</code> will be loaded. </li>
                <li>'default\_column\_formats': Specifies the default format to be applied to source data loaded into columns with the corresponding column property. Currently supported column properties include date, time, and datetime. This default column-property-bound format can be overridden by specifying a column property and format for a given target column in <code>column\_formats</code>. For each specified annotation, the format will apply to all columns with that annotation unless a custom <code>column\_formats</code> for that annotation is specified. The parameter value must be formatted as a JSON string that is a map of column properties to their respective column formats, e.g., '{"{"} "date" : "%Y.%m.%d", "time" : "%H:%M:%S" {"}"}'. Column formats are specified as a string of control characters and plain text. The supported control characters are 'Y', 'm', 'd', 'H', 'M', 'S', and 's', which follow the Linux 'strptime()' specification, as well as 's', which specifies seconds and fractional seconds (though the fractional component will be truncated past milliseconds). Formats for the 'date' annotation must include the 'Y', 'm', and 'd' control characters. Formats for the 'time' annotation must include the 'H', 'M', and either 'S' or 's' (but not both) control characters. Formats for the 'datetime' annotation meet both the 'date' and 'time' control character requirements. For example, '{"{"}"datetime" : "%m/%d/%Y %H:%M:%S" {"}"}' would be used to interpret text as "05/04/2000 12:12:11". </li>
                <li>'datalake\_catalog': Name of an existing datalake(iceberg) catalog used in loading files. </li>
                <li>'datalake\_path': Path of datalake(iceberg) object. </li>
                <li>'datalake\_snapshot': Snapshot ID of datalake(iceberg) object. </li>

                <li>
                  'error\_handling': Specifies how errors should be handled upon insertion. Supported values:

                  <ul>
                    <li>'permissive': Records with missing columns are populated with nulls if possible; otherwise, the malformed records are skipped. </li>
                    <li>'ignore\_bad\_records': Malformed records are skipped. </li>
                    <li>'abort': Stops current insertion and aborts entire operation when an error is encountered. Primary key collisions are considered abortable errors in this mode. </li>
                  </ul>

                  The default value is 'abort'.
                </li>

                <li>
                  'external\_table\_type': Specifies whether the external table holds a local copy of the external data. Supported values:

                  <ul>
                    <li>'materialized': Loads a copy of the external data into the database, refreshed on demand. </li>
                    <li>'logical': External data will not be loaded into the database; the data will be retrieved from the source upon servicing each query against the external table. </li>
                  </ul>

                  The default value is 'materialized'.
                </li>

                <li>
                  'file\_type': Specifies the type of the file(s) whose records will be inserted. Supported values:

                  <ul>
                    <li>'avro': Avro file format. </li>
                    <li>'delimited\_text': Delimited text file format; e.g., CSV, TSV, PSV, etc. </li>
                    <li>'gdb': Esri/GDB file format. </li>
                    <li>'json': JSON file format. </li>
                    <li>'parquet': Apache Parquet file format. </li>
                    <li>'shapefile': ShapeFile file format. </li>
                  </ul>

                  The default value is 'delimited\_text'.
                </li>

                <li>
                  'flatten\_columns': Specifies how to handle nested columns. Supported values:

                  <ul>
                    <li>'true': Break up nested columns to multiple columns. </li>
                    <li>'false': Treat nested columns as JSON columns instead of flattening. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'gdal\_configuration\_options': Comma separated list of gdal conf options, for the specific requests: key=value. </li>

                <li>
                  'ignore\_existing\_pk': Specifies the record collision error-suppression policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, only used when not in upsert mode (upsert mode is disabled when <code>update\_on\_existing\_pk</code> is <code>false</code>). If set to <code>true</code>, any record being inserted that is rejected for having primary key values that match those of an existing table record will be ignored with no error generated. If <code>false</code>, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined by <code>error\_handling</code>. If the specified table does not have a primary key or if upsert mode is in effect (<code>update\_on\_existing\_pk</code> is <code>true</code>), then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Ignore new records whose primary key values collide with those of existing records. </li>
                    <li>'false': Treat as errors any new records whose primary key values collide with those of existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'ingestion\_mode': Whether to do a full load, dry run, or perform a type inference on the source data. Supported values:

                  <ul>
                    <li>'full': Run a type inference on the source data (if needed) and ingest. </li>
                    <li>'dry\_run': Does not load data, but walks through the source data and determines the number of valid records, taking into account the current mode of <code>error\_handling</code>. </li>
                    <li>'type\_inference\_only': Infer the type of the source data and return, without ingesting any data. The inferred type is returned in the response. </li>
                  </ul>

                  The default value is 'full'.
                </li>

                <li>'jdbc\_fetch\_size': The JDBC fetch size, which determines how many rows to fetch per round trip. The default value is '50000'. </li>
                <li>'kafka\_consumers\_per\_rank': Number of Kafka consumer threads per rank (valid range 1-6). The default value is '1'. </li>
                <li>'kafka\_group\_id': The group id to be used when consuming data from a Kafka topic (valid only for Kafka datasource subscriptions). </li>

                <li>
                  'kafka\_offset\_reset\_policy': Policy to determine whether the Kafka data consumption starts either at earliest offset or latest offset. Supported values:

                  <ul>
                    <li>'earliest' </li>
                    <li>'latest' </li>
                  </ul>

                  The default value is 'earliest'.
                </li>

                <li>
                  'kafka\_optimistic\_ingest': Enable optimistic ingestion where Kafka topic offsets and table data are committed independently to achieve parallelism. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'kafka\_subscription\_cancel\_after': Sets the Kafka subscription lifespan (in minutes). Expired subscription will be cancelled automatically. </li>
                <li>'kafka\_type\_inference\_fetch\_timeout': Maximum time to collect Kafka messages before type inferencing on the set of them. </li>
                <li>'layer': Geo files layer(s) name(s): comma separated. </li>

                <li>
                  'loading\_mode': Scheme for distributing the extraction and loading of data from the source data file(s). This option applies only when loading files that are local to the database. Supported values:

                  <ul>
                    <li>'head': The head node loads all data. All files must be available to the head node. </li>
                    <li>'distributed\_shared': The head node coordinates loading data by worker processes across all nodes from shared files available to all workers. NOTE: Instead of existing on a shared source, the files can be duplicated on a source local to each host to improve performance, though the files must appear as the same data set from the perspective of all hosts performing the load. </li>
                    <li>'distributed\_local': A single worker process on each node loads all files that are available to it. This option works best when each worker loads files from its own file system, to maximize performance. In order to avoid data duplication, either each worker performing the load needs to have visibility to a set of files unique to it (no file is visible to more than one node) or the target table needs to have a primary key (which will allow the worker to automatically deduplicate data). NOTE: If the target table doesn't exist, the table structure will be determined by the head node. If the head node has no files local to it, it will be unable to determine the structure and the request will fail. If the head node is configured to have no worker processes, no data strictly accessible to the head node will be loaded. </li>
                  </ul>

                  The default value is 'head'.
                </li>

                <li>'local\_time\_offset': Apply an offset to Avro local timestamp columns. </li>
                <li>'max\_records\_to\_load': Limit the number of records to load in this request: if this number is larger than <code>batch\_size</code>, then the number of records loaded will be limited to the next whole number of <code>batch\_size</code> (per working thread). </li>
                <li>'name\_columns\_from\_file': Specifies a comma-delimited list of column names to be used as the source-data column names. If the file has a header row (i.e., <code>text\_has\_header</code> is <code>true</code>), these names override the file's header names. If the file has no header row, these names are used as the source-data column names. Either way, the i-th name in this list applies to the i-th column in the file, enabling name-based matching against the target table's columns (and use with <code>columns\_to\_load</code> / <code>columns\_to\_skip</code>). </li>
                <li>'num\_tasks\_per\_rank': Number of tasks for reading file per rank. Default will be system configuration parameter, external\_file\_reader\_num\_tasks. </li>
                <li>'poll\_interval': If <code>true</code>, the number of seconds between attempts to load external files into the table. If zero, polling will be continuous as long as data is found. If no data is found, the interval will steadily increase to a maximum of 60 seconds. The default value is '0'. </li>
                <li>'primary\_keys': Comma separated list of column names to set as primary keys, when not specified in the type. </li>

                <li>
                  'refresh\_method': Method by which the table can be refreshed from its source data. Supported values:

                  <ul>
                    <li>'manual': Refresh only occurs when manually requested by invoking the refresh action of <a href="/content/api/nodejs/GPUdb#alter_table"><code>GPUdb#alter\_table</code></a> on this table. </li>
                    <li>'on\_start': Refresh table on database startup and when manually requested by invoking the refresh action of <a href="/content/api/nodejs/GPUdb#alter_table"><code>GPUdb#alter\_table</code></a> on this table. </li>
                  </ul>

                  The default value is 'manual'.
                </li>

                <li>'schema\_registry\_connection\_retries': Confluent Schema registry connection timeout (in secs). </li>
                <li>'schema\_registry\_connection\_timeout': Confluent Schema registry connection timeout (in secs). </li>
                <li>'schema\_registry\_max\_consecutive\_connection\_failures': Max records to skip due to SR connection failures, before failing. </li>
                <li>'max\_consecutive\_invalid\_schema\_failure': Max records to skip due to schema related errors, before failing. </li>
                <li>'schema\_registry\_schema\_name': Name of the Avro schema in the schema registry to use when reading Avro records. </li>
                <li>'shard\_keys': Comma separated list of column names to set as shard keys, when not specified in the type. </li>
                <li>'skip\_lines': Skip a number of lines from the beginning of the file. </li>
                <li>'start\_offsets': Starting offsets by partition to fetch from kafka. A comma separated list of partition:offset pairs. </li>

                <li>
                  'subscribe': Continuously poll the data source to check for new data and load it into the table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'table\_insert\_mode': Insertion scheme to use when inserting records from multiple shapefiles. Supported values:

                  <ul>
                    <li>'single': Insert all records into a single table. </li>
                    <li>'table\_per\_file': Insert records from each file into a new table corresponding to that file. </li>
                  </ul>

                  The default value is 'single'.
                </li>

                <li>'text\_comment\_string': Specifies the character string that should be interpreted as a comment line prefix in the source data. All lines in the data starting with the provided string are ignored. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '#'. </li>
                <li>'text\_delimiter': Specifies the character delimiting field values in the source data and field names in the header (if present). For <code>delimited\_text</code> <code>file\_type</code> only. The default value is ','. </li>
                <li>'text\_escape\_character': Specifies the character that is used to escape other characters in the source data. An 'a', 'b', 'f', 'n', 'r', 't', or 'v' preceded by an escape character will be interpreted as the ASCII bell, backspace, form feed, line feed, carriage return, horizontal tab, and vertical tab, respectively. For example, the escape character followed by an 'n' will be interpreted as a newline within a field value. The escape character can also be used to escape the quoting character, and will be treated as an escape character whether it is within a quoted field value or not. For <code>delimited\_text</code> <code>file\_type</code> only. </li>

                <li>
                  'text\_has\_header': Indicates whether the source data contains a header row. For <code>delimited\_text</code><code>file\_type</code> only. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'text\_header\_property\_delimiter': Specifies the delimiter for <a href="/content/concepts/types/#column-properties" target="_top">column properties</a> in the header row (if present). Cannot be set to same value as <code>text\_delimiter</code>. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '|'. </li>
                <li>'text\_null\_string': Specifies the character string that should be interpreted as a null value in the source data. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '\N'. </li>
                <li>'text\_quote\_character': Specifies the character that should be interpreted as a field value quoting character in the source data. The character must appear at beginning and end of field value to take effect. Delimiters within quoted fields are treated as literals and not delimiters. Within a quoted field, two consecutive quote characters will be interpreted as a single literal quote character, effectively escaping it. To not have a quote character, specify an empty string. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '"'. </li>
                <li>'text\_search\_columns': Add 'text\_search' property to internally inferenced string columns. Comma separated list of column names or '\*' for all columns. To add 'text\_search' property only to string columns greater than or equal to a minimum size, also set the <code>text\_search\_min\_column\_length</code> </li>
                <li>'text\_search\_min\_column\_length': Set the minimum column size for strings to apply the 'text\_search' property to. Used only when <code>text\_search\_columns</code> has a value. </li>
                <li>'transformations': Comma-separated expressions, one per target table column. Each expression is evaluated per record. Empty entries (two consecutive commas) mean no transformation for that column -- the value is resolved from the input record, table default, NULL, or an error. Expressions may reference input columns by name or by position ($1 for the first input column, $2 for the second, etc.). The default value is ''. </li>

                <li>
                  'trim\_space': If set to <code>true</code>, remove leading or trailing space from fields. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'truncate\_strings': If set to <code>true</code>, truncate string values that are longer than the column's type size. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'truncate\_table': If set to <code>true</code>, truncates the table specified by <code>table\_name</code> prior to loading the file(s). Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'type\_inference\_max\_records\_read' </li>

                <li>
                  'type\_inference\_mode': Optimize type inferencing for either speed or accuracy. Supported values:

                  <ul>
                    <li>'accuracy': Scans data to get exactly-typed and sized columns for all data scanned. </li>
                    <li>'speed': Scans data and picks the widest possible column types so that 'all' values will fit with minimum data scanned. </li>
                  </ul>

                  The default value is 'speed'.
                </li>

                <li>'remote\_query': Remote SQL query from which data will be sourced. </li>
                <li>'remote\_query\_filter\_column': Name of column to be used for splitting <code>remote\_query</code> into multiple sub-queries using the data distribution of given column. </li>
                <li>'remote\_query\_increasing\_column': Column on subscribed remote query result that will increase for new records (e.g., TIMESTAMP). </li>
                <li>'remote\_query\_partition\_column': Alias name for <code>remote\_query\_filter\_column</code>. </li>

                <li>
                  'enable\_inplace\_updates': Applies only when upserting (when update\_on\_existing\_pk is true). If set to true (the default), an existing record matched by primary key is modified in place. If set to false, the matched record is updated by deleting it 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>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'update\_on\_existing\_pk': Specifies the record collision policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>. If set to <code>true</code>, any existing table record with primary key values that match those of a record being inserted will be replaced by that new record (the new data will be 'upserted'). If set to <code>false</code>, any existing table record with primary key values that match those of a record being inserted will remain unchanged, while the new record will be rejected and the error handled as determined by <code>ignore\_existing\_pk</code> and <code>error\_handling</code>. If the specified table does not have a primary key, then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Upsert new records when primary keys match existing records. </li>
                    <li>'false': Reject new records when primary keys match existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_table_external_request"><span className="type-signature" />create\_table\_external\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new <a href="/content/concepts/external_tables/" target="_top">external table</a>, which is a local database object whose source data is located externally to the database. The source data can be located either in <a href="/content/tools/kifs/" target="_top">KiFS</a>; on the cluster, accessible to the database; or remotely, accessible via a pre-defined external <a href="/content/concepts/data_sources/" target="_top">data source</a>.
        <p> The external table can have its structure defined explicitly, via <code>create\_table\_options</code>, which contains many of the options from <a href="/content/api/nodejs/GPUdb#create_table"><code>GPUdb#create\_table</code></a>; or defined implicitly, inferred from the source data. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_table_monitor"><span className="type-signature" />create\_table\_monitor<span className="signature">(table\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a monitor that watches for a single table modification event type (insert, update, or delete) on a particular table (identified by <code>table\_name</code>) and forwards event notifications to subscribers via ZMQ. After this call completes, subscribe to the returned <code>topic\_id</code> on the ZMQ table monitor port (default 9002). Each time an operation of the given type on the table completes, a multipart message is published for that topic; the first part contains only the topic ID, and each subsequent part contains one binary-encoded Avro object that corresponds to the event and can be decoded using <code>type\_schema</code>. The monitor will continue to run (regardless of whether or not there are any subscribers) until deactivated with <a href="/content/api/nodejs/GPUdb#clear_table_monitor"><code>GPUdb#clear\_table\_monitor</code></a>.
        <p> For more information on table monitors, see <a href="/content/concepts/table_monitors/" target="_top">Table Monitors</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to monitor, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'event': Type of modification event on the target table to be monitored by this table monitor. Supported values:

                  <ul>
                    <li>'insert': Get notifications of new record insertions. The new row images are forwarded to the subscribers. </li>
                    <li>'update': Get notifications of update operations. The modified row count information is forwarded to the subscribers. </li>
                    <li>'delete': Get notifications of delete operations. The deleted row count information is forwarded to the subscribers. </li>
                  </ul>

                  The default value is 'insert'.
                </li>

                <li>'monitor\_id': ID to use for this monitor instead of a randomly generated one. </li>
                <li>'datasink\_name': Name of an existing <a href="/content/concepts/data_sinks/" target="_top">data sink</a> to send change data notifications to. </li>
                <li>'max\_consecutive\_failures': Maximum number of consecutive failed notification attempts before suspending the stream. A value of -1 (default) disables auto-suspend. This value is by rank and not overall. </li>
                <li>'failed\_notifications\_table\_name': Name of a <a href="/content/concepts/tables/" target="_top">table</a> to which failed stream notifications are written when the stream is suspended. The database will attempt to send notifications persisted in this table when the stream is resumed. The table has the following columns: rank (long), job\_id (long), uuid (uuid), timestamp (timestamp), error\_msg (string), payload (bytes). Leave this option empty to disable persisting failed notification events. </li>
                <li>'destination': Destination for the output data in format 'destination\_type://path\[:port]'. Supported destination types are 'http', 'https' and 'kafka'. </li>
                <li>'kafka\_topic\_name': Name of the Kafka topic to publish to if <code>destination</code> in <code>options</code> is specified and is a Kafka broker. </li>
                <li>'increasing\_column': Column on subscribed table that will increase for new records (e.g., TIMESTAMP). </li>
                <li>'expression': Filter expression to limit records for notification. </li>
                <li>'join\_table\_names': A comma-separated list of tables (optionally with aliases) to include in the join. The monitored table <code>table\_name</code> must be included, representing only the newly inserted rows (deltas) since the last notification. Other tables can be any existing tables or views. Aliases can be used with the 'table\_name as alias' syntax. </li>
                <li>'join\_column\_names': A comma-separated list of columns or expressions to include from the joined tables. Column references can use table names or aliases defined in 'join\_table\_names'. Each column can optionally be aliased using 'as'. The selected columns will also appear in the notification output. </li>
                <li>'join\_expressions': Filter or join expressions to apply when combining the tables. Expressions are standard SQL-style conditions and can reference any table or alias listed in 'join\_table\_names'. This corresponds to the WHERE clause of the underlying join, and can include conditions to filter the delta rows. </li>

                <li>
                  'refresh\_method': Method controlling when the table monitor reports changes to the <code>table\_name</code>. Supported values:

                  <ul>
                    <li>'on\_change': Report changes as they occur. </li>
                    <li>'periodic': Report changes periodically at rate specified by <code>refresh\_period</code>. </li>
                  </ul>

                  The default value is 'on\_change'.
                </li>

                <li>'refresh\_period': When <code>refresh\_method</code> is <code>periodic</code>, specifies the period in seconds at which changes are reported. </li>
                <li>'refresh\_start\_time': When <code>refresh\_method</code> is <code>periodic</code>, specifies the first time at which changes are reported. Value is a datetime string with format 'YYYY-MM-DD HH:MM:SS'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_table_monitor_request"><span className="type-signature" />create\_table\_monitor\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a monitor that watches for a single table modification event type (insert, update, or delete) on a particular table (identified by <code>table\_name</code>) and forwards event notifications to subscribers via ZMQ. After this call completes, subscribe to the returned <code>topic\_id</code> on the ZMQ table monitor port (default 9002). Each time an operation of the given type on the table completes, a multipart message is published for that topic; the first part contains only the topic ID, and each subsequent part contains one binary-encoded Avro object that corresponds to the event and can be decoded using <code>type\_schema</code>. The monitor will continue to run (regardless of whether or not there are any subscribers) until deactivated with <a href="/content/api/nodejs/GPUdb#clear_table_monitor"><code>GPUdb#clear\_table\_monitor</code></a>.
        <p> For more information on table monitors, see <a href="/content/concepts/table_monitors/" target="_top">Table Monitors</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_table_request"><span className="type-signature" />create\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new table with the given type (definition of columns). The type is specified in <code>type\_id</code> as either a numerical type ID (as returned by <a href="/content/api/nodejs/GPUdb#create_type"><code>GPUdb#create\_type</code></a>) or as a list of columns, each specified as a list of the column name, data type, and any column attributes.
        <p> Example of a type definition with some parameters: </p>
        <pre>    \[<br />        \["id", "int8", "primary\_key"],<br />        \["dept\_id", "int8", "primary\_key", "shard\_key"],<br />        \["manager\_id", "int8", "nullable"],<br />        \["first\_name", "char32"],<br />        \["last\_name", "char64"],<br />        \["salary", "decimal"],<br />        \["hire\_date", "date"]<br />    ]</pre>
        Each column definition consists of the column name (which should meet the standard <a href="/content/concepts/tables/#table-naming-criteria" target="_top">column naming criteria</a>), the column's <a href="/content/concepts/types/#types-chart" target="_top">specific type</a> (int, long, float, double, string, bytes, or any of the properties map values from <a href="/content/api/nodejs/GPUdb#create_type"><code>GPUdb#create\_type</code></a>), and any <a href="/content/concepts/types/#types-data-handling" target="_top">data handling</a>, <a href="/content/concepts/types/#types-data-keys" target="_top">data key</a>, or <a href="/content/concepts/types/#types-data-replace" target="_top">data replacement</a> properties.
        <p> A table may optionally be designated to use a <a href="/content/concepts/tables/#replication" target="_top">replicated</a> distribution scheme, or be assigned: <a href="/content/concepts/tables/#foreign-keys" target="_top">foreign keys</a> to other tables, a <a href="/content/concepts/tables/#partitioning" target="_top">partitioning</a> scheme, and/or a <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_trigger_by_area"><span className="type-signature" />create\_trigger\_by\_area<span className="signature">(request\_id, table\_names, x\_column\_name, x\_vector, y\_column\_name, y\_vector, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Sets up an area trigger mechanism for two column\_names for one or more tables. (This function is essentially the two-dimensional version of <a href="/content/api/nodejs/GPUdb#create_trigger_by_range"><code>GPUdb#create\_trigger\_by\_range</code></a>.) Once the trigger has been activated, any record added to the listed tables(s) via <a href="/content/api/nodejs/GPUdb#insert_records"><code>GPUdb#insert\_records</code></a> with the chosen columns' values falling within the specified region will trip the trigger. All such records will be queued at the trigger port (by default '9001' but able to be retrieved via <a href="/content/api/nodejs/GPUdb#show_system_status"><code>GPUdb#show\_system\_status</code></a>) for any listening client to collect. Active triggers can be cancelled by using the <a href="/content/api/nodejs/GPUdb#clear_trigger"><code>GPUdb#clear\_trigger</code></a> endpoint or by clearing all relevant tables.
        <p> The output returns the trigger handle as well as indicating success or failure of the trigger activation. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">User-created ID for the trigger. The ID can be alphanumeric, contain symbols, and must contain at least one character.</td>
          </tr>

          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Names of the tables on which the trigger will be activated and maintained, each in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>x\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of a numeric column on which the trigger is activated. Usually 'x' for geospatial data points.</td>
          </tr>

          <tr>
            <td className="name"><code>x\_vector</code></td>
            <td className="type"> <span className="param-type">Array.\<Number></span> </td>
            <td className="description last">The respective coordinate values for the region on which the trigger is activated. This usually translates to the x-coordinates of a geospatial region.</td>
          </tr>

          <tr>
            <td className="name"><code>y\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of a second numeric column on which the trigger is activated. Usually 'y' for geospatial data points.</td>
          </tr>

          <tr>
            <td className="name"><code>y\_vector</code></td>
            <td className="type"> <span className="param-type">Array.\<Number></span> </td>
            <td className="description last">The respective coordinate values for the region on which the trigger is activated. This usually translates to the y-coordinates of a geospatial region. Must be the same length as xvals.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_trigger_by_area_request"><span className="type-signature" />create\_trigger\_by\_area\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Sets up an area trigger mechanism for two column\_names for one or more tables. (This function is essentially the two-dimensional version of <a href="/content/api/nodejs/GPUdb#create_trigger_by_range"><code>GPUdb#create\_trigger\_by\_range</code></a>.) Once the trigger has been activated, any record added to the listed tables(s) via <a href="/content/api/nodejs/GPUdb#insert_records"><code>GPUdb#insert\_records</code></a> with the chosen columns' values falling within the specified region will trip the trigger. All such records will be queued at the trigger port (by default '9001' but able to be retrieved via <a href="/content/api/nodejs/GPUdb#show_system_status"><code>GPUdb#show\_system\_status</code></a>) for any listening client to collect. Active triggers can be cancelled by using the <a href="/content/api/nodejs/GPUdb#clear_trigger"><code>GPUdb#clear\_trigger</code></a> endpoint or by clearing all relevant tables.
        <p> The output returns the trigger handle as well as indicating success or failure of the trigger activation. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_trigger_by_range"><span className="type-signature" />create\_trigger\_by\_range<span className="signature">(request\_id, table\_names, column\_name, min, max, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Sets up a simple range trigger for a column\_name for one or more tables. Once the trigger has been activated, any record added to the listed tables(s) via <a href="/content/api/nodejs/GPUdb#insert_records"><code>GPUdb#insert\_records</code></a> with the chosen column\_name's value falling within the specified range will trip the trigger. All such records will be queued at the trigger port (by default '9001' but able to be retrieved via <a href="/content/api/nodejs/GPUdb#show_system_status"><code>GPUdb#show\_system\_status</code></a>) for any listening client to collect. Active triggers can be cancelled by using the <a href="/content/api/nodejs/GPUdb#clear_trigger"><code>GPUdb#clear\_trigger</code></a> endpoint or by clearing all relevant tables.
        <p> The output returns the trigger handle as well as indicating success or failure of the trigger activation. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">User-created ID for the trigger. The ID can be alphanumeric, contain symbols, and must contain at least one character.</td>
          </tr>

          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Tables on which the trigger will be active, each in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of a numeric column\_name on which the trigger is activated.</td>
          </tr>

          <tr>
            <td className="name"><code>min</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">The lower bound (inclusive) for the trigger range.</td>
          </tr>

          <tr>
            <td className="name"><code>max</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">The upper bound (inclusive) for the trigger range.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_trigger_by_range_request"><span className="type-signature" />create\_trigger\_by\_range\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Sets up a simple range trigger for a column\_name for one or more tables. Once the trigger has been activated, any record added to the listed tables(s) via <a href="/content/api/nodejs/GPUdb#insert_records"><code>GPUdb#insert\_records</code></a> with the chosen column\_name's value falling within the specified range will trip the trigger. All such records will be queued at the trigger port (by default '9001' but able to be retrieved via <a href="/content/api/nodejs/GPUdb#show_system_status"><code>GPUdb#show\_system\_status</code></a>) for any listening client to collect. Active triggers can be cancelled by using the <a href="/content/api/nodejs/GPUdb#clear_trigger"><code>GPUdb#clear\_trigger</code></a> endpoint or by clearing all relevant tables.
        <p> The output returns the trigger handle as well as indicating success or failure of the trigger activation. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_type"><span className="type-signature" />create\_type<span className="signature">(type\_definition, label, properties, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new type describing the columns of a table. The type definition is specified as a list of columns, each specified as a list of the column name, data type, and any column attributes.
        <p> Example of a type definition with some parameters: </p>
        <pre>    \[<br />        \["id", "int8", "primary\_key"],<br />        \["dept\_id", "int8", "primary\_key", "shard\_key"],<br />        \["manager\_id", "int8", "nullable"],<br />        \["first\_name", "char32"],<br />        \["last\_name", "char64"],<br />        \["salary", "decimal"],<br />        \["hire\_date", "date"]<br />    ]</pre>
        Each column definition consists of the column name (which should meet the standard <a href="/content/concepts/tables/#table-naming-criteria" target="_top">column naming criteria</a>), the column's <a href="/content/concepts/types/#types-chart" target="_top">specific type</a> (int, long, float, double, string, bytes, or any of the possible values for <code>properties</code>), and any <a href="/content/concepts/types/#types-data-handling" target="_top">data handling</a>, <a href="/content/concepts/types/#types-data-keys" target="_top">data key</a>, or <a href="/content/concepts/types/#types-data-replace" target="_top">data replacement</a> properties.
        <p> Note that some properties are mutually exclusive--i.e. they cannot be specified for any given column simultaneously. One example of mutually exclusive properties are <code>primary\_key</code> and <code>nullable</code>. </p>
        <p> A single <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a> and/or single <a href="/content/concepts/tables/#shard-keys" target="_top">shard key</a> can be set across one or more columns. If a primary key is specified, then a uniqueness constraint is enforced, in that only a single object can exist with a given primary key column value (or set of values for the key columns, if using a composite primary key). When <a href="/content/api/nodejs/GPUdb#insert_records"><code>inserting</code></a> data into a table with a primary key, depending on the parameters in the request, incoming objects with primary key values that match existing objects will either overwrite (i.e. update) the existing object or will be skipped and not added into the set. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>type\_definition</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">JSON string defining the columns of the type to be registered, as described above.</td>
          </tr>

          <tr>
            <td className="name"><code>label</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">A user-defined description string which can be used to differentiate between tables and types with otherwise identical schemas.</td>
          </tr>

          <tr>
            <td className="name"><code>properties</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              \[DEPRECATED--please use these property values in the <code>type\_definition</code> directly, as described at the top, instead] Each key-value pair specifies the properties to use for a given column where the key is the column name. All keys used must be relevant column names for the given table. Specifying any property overrides the default properties for that column (which is based on the column's data type). Valid values are:

              <ul>
                <li>'data': Default property for all numeric and string type columns; makes the column available for GPU queries. </li>
                <li>'text\_search': Valid only for select 'string' columns. Enables full text search--see <a href="/content/concepts/full_text_search/" target="_top">Full Text Search</a> for details and applicable string column types. </li>
                <li>'timestamp': Valid only for 'long' columns. Indicates that this field represents a timestamp and will be provided in milliseconds since the Unix epoch: 00:00:00 Jan 1 1970. Dates represented by a timestamp must fall between the year 1000 and the year 2900. </li>
                <li>'ulong': Valid only for 'string' columns. It represents an unsigned long integer data type. The string can only be interpreted as an unsigned long data type with minimum value of zero, and maximum value of 18446744073709551615. </li>
                <li>'uuid': Valid only for 'string' columns. It represents an uuid data type. Internally, it is stored as a 128-bit integer. </li>
                <li>'decimal': Valid only for 'string' columns. It represents a SQL type NUMERIC(19, 4) data type. There can be up to 15 digits before the decimal point and up to four digits in the fractional part. The value can be positive or negative (indicated by a minus sign at the beginning). This property is mutually exclusive with the <code>text\_search</code> property. </li>
                <li>'date': Valid only for 'string' columns. Indicates that this field represents a date and will be provided in the format 'YYYY-MM-DD'. The allowable range is 1000-01-01 through 2900-01-01. This property is mutually exclusive with the <code>text\_search</code> property. </li>
                <li>'time': Valid only for 'string' columns. Indicates that this field represents a time-of-day and will be provided in the format 'HH:MM:SS.mmm'. The allowable range is 00:00:00.000 through 23:59:59.999. This property is mutually exclusive with the <code>text\_search</code> property. </li>
                <li>'datetime': Valid only for 'string' columns. Indicates that this field represents a datetime and will be provided in the format 'YYYY-MM-DD HH:MM:SS.mmm'. The allowable range is 1000-01-01 00:00:00.000 through 2900-01-01 23:59:59.999. This property is mutually exclusive with the <code>text\_search</code> property. </li>
                <li>'char1': This property provides optimized memory, disk and query performance for string columns. Strings with this property must be no longer than 1 character. </li>
                <li>'char2': This property provides optimized memory, disk and query performance for string columns. Strings with this property must be no longer than 2 characters. </li>
                <li>'char4': This property provides optimized memory, disk and query performance for string columns. Strings with this property must be no longer than 4 characters. </li>
                <li>'char8': This property provides optimized memory, disk and query performance for string columns. Strings with this property must be no longer than 8 characters. </li>
                <li>'char16': This property provides optimized memory, disk and query performance for string columns. Strings with this property must be no longer than 16 characters. </li>
                <li>'char32': This property provides optimized memory, disk and query performance for string columns. Strings with this property must be no longer than 32 characters. </li>
                <li>'char64': This property provides optimized memory, disk and query performance for string columns. Strings with this property must be no longer than 64 characters. </li>
                <li>'char128': This property provides optimized memory, disk and query performance for string columns. Strings with this property must be no longer than 128 characters. </li>
                <li>'char256': This property provides optimized memory, disk and query performance for string columns. Strings with this property must be no longer than 256 characters. </li>
                <li>'boolean': This property provides optimized memory and query performance for int columns. Ints with this property must be between 0 and 1(inclusive) </li>
                <li>'int8': This property provides optimized memory and query performance for int columns. Ints with this property must be between -128 and +127 (inclusive) </li>
                <li>'int16': This property provides optimized memory and query performance for int columns. Ints with this property must be between -32768 and +32767 (inclusive) </li>
                <li>'ipv4': This property provides optimized memory, disk and query performance for string columns representing IPv4 addresses (i.e. 192.168.1.1). Strings with this property must be of the form: A.B.C.D where A, B, C and D are in the range of 0-255. </li>
                <li>'array': Valid only for 'string' columns. Indicates that this field contains an array. The value type and (optionally) the item count should be specified in parenthesis; e.g., 'array(int, 10)' for a 10-integer array. Both 'array(int)' and 'array(int, -1)' will designate an unlimited-length integer array, though no bounds checking is performed on arrays of any length. </li>
                <li>'json': Valid only for 'string' columns. Indicates that this field contains values in JSON format. </li>
                <li>'vector': Valid only for 'bytes' columns. Indicates that this field contains a vector of floats. The length should be specified in parenthesis, e.g., 'vector(1000)'. </li>
                <li>'wkt': Valid only for 'string' and 'bytes' columns. Indicates that this field contains geospatial geometry objects in Well-Known Text (WKT) or Well-Known Binary (WKB) format. </li>
                <li>'primary\_key': This property indicates that this column will be part of (or the entire) <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>. </li>
                <li>'soft\_primary\_key': This property indicates that this column will be part of (or the entire) <a href="/content/concepts/tables/#soft-primary-keys" target="_top">soft primary key</a>. </li>
                <li>'shard\_key': This property indicates that this column will be part of (or the entire) <a href="/content/concepts/tables/#shard-keys" target="_top">shard key</a>. </li>
                <li>'nullable': This property indicates that this column is nullable. However, setting this property is insufficient for making the column nullable. The user must declare the type of the column as a union between its regular type and 'null' in the Avro schema for the record type in <code>type\_definition</code>. For example, if a column is of type integer and is nullable, then the entry for the column in the Avro schema must be: \['int', 'null']. The C++, C#, Java, and Python APIs have built-in convenience for bypassing setting the Avro schema by hand. For those languages, one can use this property as usual and not have to worry about the Avro schema for the record. </li>
                <li>'compress': This property indicates that this column should be <a href="/content/concepts/column_compression/" target="_top">compressed</a> with the given codec and optional level; e.g., 'compress(snappy)' for Snappy compression and 'compress(zstd(7))' for zstd level 7 compression. This property is primarily used in order to save disk space. </li>
                <li>'dict': This property indicates that this column should be <a href="/content/concepts/dictionary_encoding/" target="_top">dictionary encoded</a>. It can only be used in conjunction with restricted string (charN), int, long or date columns. Dictionary encoding is best for columns where the cardinality (the number of unique values) is expected to be low. This property can save a large amount of memory. </li>
                <li>'init\_with\_now': For 'date', 'time', 'datetime', or 'timestamp' column types, replace empty strings and invalid timestamps with 'NOW()' upon insert. </li>
                <li>'init\_with\_uuid': For 'uuid' type, replace empty strings and invalid UUID values with randomly-generated UUIDs upon insert. </li>
                <li>'update\_with\_now': For 'date', 'time', 'datetime', or 'timestamp' column types, update the field with 'NOW()' upon any update. </li>
                <li>'update\_with\_user': For 'charN' or 'string' column types, update the field with the current user's name upon any update. </li>
                <li>'default': Sets a default value expression for this column, e.g. 'default(0)', 'default(''pending'')', or 'default(NOW())'. When the column is omitted from an insert via request\_schema\_str, the expression is evaluated and the result is used as the column value. </li>
                <li>'default\_sql': Sets a default value expression for this column with SQL syntax, e.g. 'default(0)', 'default(''pending'')', or 'default(NOW())'. Only used for showing the expression when generating SQL DDL. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression codec</a> for this type's columns. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_type_request"><span className="type-signature" />create\_type\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new type describing the columns of a table. The type definition is specified as a list of columns, each specified as a list of the column name, data type, and any column attributes.
        <p> Example of a type definition with some parameters: </p>
        <pre>    \[<br />        \["id", "int8", "primary\_key"],<br />        \["dept\_id", "int8", "primary\_key", "shard\_key"],<br />        \["manager\_id", "int8", "nullable"],<br />        \["first\_name", "char32"],<br />        \["last\_name", "char64"],<br />        \["salary", "decimal"],<br />        \["hire\_date", "date"]<br />    ]</pre>
        Each column definition consists of the column name (which should meet the standard <a href="/content/concepts/tables/#table-naming-criteria" target="_top">column naming criteria</a>), the column's <a href="/content/concepts/types/#types-chart" target="_top">specific type</a> (int, long, float, double, string, bytes, or any of the possible values for <code>properties</code>), and any <a href="/content/concepts/types/#types-data-handling" target="_top">data handling</a>, <a href="/content/concepts/types/#types-data-keys" target="_top">data key</a>, or <a href="/content/concepts/types/#types-data-replace" target="_top">data replacement</a> properties.
        <p> Note that some properties are mutually exclusive--i.e. they cannot be specified for any given column simultaneously. One example of mutually exclusive properties are <code>primary\_key</code> and <code>nullable</code>. </p>
        <p> A single <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a> and/or single <a href="/content/concepts/tables/#shard-keys" target="_top">shard key</a> can be set across one or more columns. If a primary key is specified, then a uniqueness constraint is enforced, in that only a single object can exist with a given primary key column value (or set of values for the key columns, if using a composite primary key). When <a href="/content/api/nodejs/GPUdb#insert_records"><code>inserting</code></a> data into a table with a primary key, depending on the parameters in the request, incoming objects with primary key values that match existing objects will either overwrite (i.e. update) the existing object or will be skipped and not added into the set. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_union"><span className="type-signature" />create\_union<span className="signature">(table\_name, table\_names, input\_column\_names, output\_column\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Merges data from one or more tables with comparable data types into a new table.
        <p> The following merges are supported: </p>
        <p> UNION (DISTINCT/ALL) - For data set union details and examples, see <a href="/content/concepts/unions/" target="_top">Union</a>. For limitations, see <a href="/content/concepts/unions/#limitations-and-cautions" target="_top">Union Limitations and Cautions</a>. </p>
        <p> INTERSECT (DISTINCT/ALL) - For data set intersection details and examples, see <a href="/content/concepts/intersect/" target="_top">Intersect</a>. For limitations, see <a href="/content/concepts/intersect/#limitations" target="_top">Intersect Limitations</a>. </p>
        <p> EXCEPT (DISTINCT/ALL) - For data set subtraction details and examples, see <a href="/content/concepts/except/" target="_top">Except</a>. For limitations, see <a href="/content/concepts/except/#limitations" target="_top">Except Limitations</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to be created, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">The list of table names to merge, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must contain the names of one or more existing tables.</td>
          </tr>

          <tr>
            <td className="name"><code>input\_column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<Array.\<String>></span> </td>
            <td className="description last">The list of columns from each of the corresponding input tables.</td>
          </tr>

          <tr>
            <td className="name"><code>output\_column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">The list of names of the columns to be stored in the output table.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>table\_name</code>. If <code>persist</code> is <code>false</code> (or unspecified), then this is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_table\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the projection as part of <code>table\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of the schema for the output table. If the schema provided is non-existent, it will be automatically created. The default value is ''. </li>

                <li>
                  'mode': The mode describes what rows of the tables being unioned will be retained. Supported values:

                  <ul>
                    <li>'union\_all': Retains all rows from the specified tables. </li>
                    <li>'union': Retains all unique rows from the specified tables (synonym for <code>union\_distinct</code>). </li>
                    <li>'union\_distinct': Retains all unique rows from the specified tables. </li>
                    <li>'except': Retains all unique rows from the first table that do not appear in the second table (only works on 2 tables). </li>
                    <li>'except\_all': Retains all rows(including duplicates) from the first table that do not appear in the second table (only works on 2 tables). </li>
                    <li>'intersect': Retains all unique rows that appear in both of the specified tables (only works on 2 tables). </li>
                    <li>'intersect\_all': Retains all rows(including duplicates) that appear in both of the specified tables (only works on 2 tables). </li>
                  </ul>

                  The default value is 'union\_all'.
                </li>

                <li>'chunk\_size': Indicates the number of records per chunk to be used for this output table. </li>
                <li>'chunk\_column\_max\_memory': Indicates the target maximum data size for each column in a chunk to be used for this output table. </li>
                <li>'chunk\_max\_memory': Indicates the target maximum data size for all columns in a chunk to be used for this output table. </li>
                <li>'create\_indexes': Comma-separated list of columns on which to create indexes on the output table. The columns specified must be present in <code>output\_column\_names</code>. </li>

                <li>
                  'partition\_type': <a href="/content/concepts/tables/#partitioning" target="_top">Partitioning</a> scheme to use for the output table. Supported values:

                  <ul>
                    <li>'RANGE': Use <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>. </li>
                    <li>'INTERVAL': Use <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>. </li>
                    <li>'LIST': Use <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>. </li>
                    <li>'HASH': Use <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>. </li>
                    <li>'SERIES': Use <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a>. </li>
                  </ul>
                </li>

                <li>'partition\_keys': Comma-separated list of partition keys, which are the columns or column expressions by which records will be assigned to partitions defined by <code>partition\_definitions</code>. </li>
                <li>'partition\_definitions': Comma-separated list of partition definitions, whose format depends on the choice of <code>partition\_type</code>. See <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>, or <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a> for example formats. </li>

                <li>
                  'is\_automatic\_partition': If <code>true</code>, a new partition will be created for values which don't fall into an existing partition. Currently only supported for <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitions</a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the output table specified in <code>table\_name</code>. </li>

                <li>
                  'persist': If <code>true</code>, then the output table specified in <code>table\_name</code> will be persisted and will not expire unless a <code>ttl</code> is specified. If <code>false</code>, then the output table will be an in-memory table and will expire unless a <code>ttl</code> is specified otherwise. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'view\_id': ID of view of which this output table is a member. The default value is ''. </li>

                <li>
                  'force\_replicated': If <code>true</code>, then the output table specified in <code>table\_name</code> will be replicated even if the source tables are not. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'strategy\_definition': The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression codec</a> for this table's columns. </li>
                <li>'no\_count': Return a count of 0 for the union table response to avoid the cost of counting; optimization needed for many chunk virtual unions. The default value is 'false'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_union_request"><span className="type-signature" />create\_union\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Merges data from one or more tables with comparable data types into a new table.
        <p> The following merges are supported: </p>
        <p> UNION (DISTINCT/ALL) - For data set union details and examples, see <a href="/content/concepts/unions/" target="_top">Union</a>. For limitations, see <a href="/content/concepts/unions/#limitations-and-cautions" target="_top">Union Limitations and Cautions</a>. </p>
        <p> INTERSECT (DISTINCT/ALL) - For data set intersection details and examples, see <a href="/content/concepts/intersect/" target="_top">Intersect</a>. For limitations, see <a href="/content/concepts/intersect/#limitations" target="_top">Intersect Limitations</a>. </p>
        <p> EXCEPT (DISTINCT/ALL) - For data set subtraction details and examples, see <a href="/content/concepts/except/" target="_top">Except</a>. For limitations, see <a href="/content/concepts/except/#limitations" target="_top">Except Limitations</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_user_external"><span className="type-signature" />create\_user\_external<span className="signature">(name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new external user (a user whose credentials are managed by an external LDAP).
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user to be created. Must exactly match the user's name in the external LDAP, prefixed with a @. Must not be the same name as an existing user.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'activated': Is the user allowed to login. Supported values:

                  <ul>
                    <li>'true': User may login. </li>
                    <li>'false': User may not login. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'create\_home\_directory': When <code>true</code>, a home directory in KiFS is created for this user. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'default\_schema': Default schema to associate with this user. </li>
                <li>'directory\_data\_limit': The maximum capacity to apply to the created directory if <code>create\_home\_directory</code> is <code>true</code>. Set to -1 to indicate no upper limit. If empty, the system default limit is applied. </li>
                <li>'resource\_group': Name of an existing resource group to associate with this user. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_user_external_request"><span className="type-signature" />create\_user\_external\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Creates a new external user (a user whose credentials are managed by an external LDAP).
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_user_internal"><span className="type-signature" />create\_user\_internal<span className="signature">(name, password, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a new internal user (a user whose credentials are managed by the database system). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user to be created. Must contain only lowercase letters, digits, and underscores, and cannot begin with a digit. Must not be the same name as an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>password</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Initial password of the user to be created. May be an empty string for no password.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'activated': Is the user allowed to login. Supported values:

                  <ul>
                    <li>'true': User may login. </li>
                    <li>'false': User may not login. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'create\_home\_directory': When <code>true</code>, a home directory in KiFS is created for this user. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'default\_schema': Default schema to associate with this user. </li>
                <li>'directory\_data\_limit': The maximum capacity to apply to the created directory if <code>create\_home\_directory</code> is <code>true</code>. Set to -1 to indicate no upper limit. If empty, the system default limit is applied. </li>
                <li>'resource\_group': Name of an existing resource group to associate with this user. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_user_internal_request"><span className="type-signature" />create\_user\_internal\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a new internal user (a user whose credentials are managed by the database system). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_video"><span className="type-signature" />create\_video<span className="signature">(attribute, begin, duration\_seconds, end, frames\_per\_second, style, path, style\_parameters, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a job to generate a sequence of raster images that visualize data over a specified time. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>attribute</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The animated attribute to map to the video's frames. Must be present in the LAYERS specified for the visualization. This is often a time-related field but may be any numeric type.</td>
          </tr>

          <tr>
            <td className="name"><code>begin</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The start point for the video. Accepts an expression evaluable over the <code>attribute</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>duration\_seconds</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Seconds of video to produce.</td>
          </tr>

          <tr>
            <td className="name"><code>end</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The end point for the video. Accepts an expression evaluable over the <code>attribute</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>frames\_per\_second</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">The presentation frame rate of the encoded video in frames per second.</td>
          </tr>

          <tr>
            <td className="name"><code>style</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              The name of the visualize mode; should correspond to the schema used for the <code>style\_parameters</code> field. Supported values:

              <ul>
                <li>'chart' </li>
                <li>'raster' </li>
                <li>'classbreak' </li>
                <li>'contour' </li>
                <li>'heatmap' </li>
                <li>'labels' </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>path</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Fully-qualified <a href="/content/tools/kifs/" target="_top">KiFS</a> path. Write access is required. A file must not exist at that path, unless <code>replace\_if\_exists</code> is <code>true</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>style\_parameters</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">A string containing the JSON-encoded visualize request. Must correspond to the visualize mode specified in the <code>style</code> field.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'ttl': Sets the <a href="/content/concepts/ttl" target="_top">TTL</a> of the video. </li>
                <li>'window': Specified using the data-type corresponding to the <code>attribute</code>. For a window of size W, a video frame rendered for time t will visualize data in the interval \[t-W,t]. The minimum window size is the interval between successive frames. The minimum value is the default. If a value less than the minimum value is specified, it is replaced with the minimum window size. Larger values will make changes throughout the video appear more smooth while smaller values will capture fast variations in the data. </li>

                <li>
                  'no\_error\_if\_exists': If <code>true</code>, does not return an error if the video already exists. Ignored if <code>replace\_if\_exists</code> is <code>true</code>. Supported values:

                  <ul>
                    <li>'false' </li>
                    <li>'true' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'replace\_if\_exists': If <code>true</code>, deletes any existing video with the same path before creating a new video. Supported values:

                  <ul>
                    <li>'false' </li>
                    <li>'true' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="create_video_request"><span className="type-signature" />create\_video\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Creates a job to generate a sequence of raster images that visualize data over a specified time. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="decode"><span className="type-signature" />decode<span className="signature">(o)</span><span className="type-signature"> → {"{"}Object|Array.\<Object>{"}"}</span></h4>
      <div className="description"> Decodes a JSON string, or array of JSON strings, returned from GPUdb into JSON object(s). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>o</code></td>
            <td className="type"> <span className="param-type">String</span> | <span className="param-type">Array.\<String></span> </td>
            <td className="description last">The JSON string(s) to decode.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> The decoded JSON object(s). </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Object</span> | <span className="param-type">Array.\<Object></span> </div>
      </div>

      <h4 className="name" id="delete_directory"><span className="type-signature" />delete\_directory<span className="signature">(directory\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes a directory from <a href="/content/tools/kifs/" target="_top">KiFS</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>directory\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the directory in KiFS to be deleted. The directory must contain no files, unless <code>recursive</code> is <code>true</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'recursive': If <code>true</code>, will delete directory and all files residing in it. If false, directory must be empty for deletion. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'no\_error\_if\_not\_exists': If <code>true</code>, no error is returned if specified directory does not exist. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_directory_request"><span className="type-signature" />delete\_directory\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes a directory from <a href="/content/tools/kifs/" target="_top">KiFS</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_files"><span className="type-signature" />delete\_files<span className="signature">(file\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes one or more files from <a href="/content/tools/kifs/" target="_top">KiFS</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>file\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">An array of names of files to be deleted. File paths may contain wildcard characters after the KiFS directory delimiter. Accepted wildcard characters are asterisk (\*) to represent any string of zero or more characters, and question mark (?) to indicate a single character.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_not\_exists': If <code>true</code>, no error is returned if a specified file does not exist. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_files_request"><span className="type-signature" />delete\_files\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes one or more files from <a href="/content/tools/kifs/" target="_top">KiFS</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_graph"><span className="type-signature" />delete\_graph<span className="signature">(graph\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes an existing graph from the graph server and/or persist. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>graph\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the graph to be deleted.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'delete\_persist': If set to <code>true</code>, the graph is removed from the server and persist. If set to <code>false</code>, the graph is removed from the server but is left in persist. The graph can be reloaded from persist if it is recreated with the same 'graph\_name'. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'server\_id': Indicates which graph server(s) to send the request to. Default is to send to get information about all the servers. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_graph_request"><span className="type-signature" />delete\_graph\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes an existing graph from the graph server and/or persist. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_proc"><span className="type-signature" />delete\_proc<span className="signature">(proc\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes a proc. Any currently running instances of the proc will be killed. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>proc\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the proc to be deleted. Must be the name of a currently existing proc.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_proc_request"><span className="type-signature" />delete\_proc\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes a proc. Any currently running instances of the proc will be killed. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_records"><span className="type-signature" />delete\_records<span className="signature">(table\_name, expressions, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes record(s) matching the provided criteria from the given table. The record selection criteria can either be one or more <code>expressions</code> (matching multiple records), a single record identified by <code>record\_id</code> options, or all records when using <code>delete\_all\_records</code>. Note that the three selection criteria are mutually exclusive. This operation cannot be run on a view. The operation is synchronous meaning that a response will not be available until the request is completely processed and all the matching records are deleted. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table from which to delete records, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must contain the name of an existing table; not applicable to views.</td>
          </tr>

          <tr>
            <td className="name"><code>expressions</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">A list of the actual predicates, one for each select; format should follow the guidelines provided <a href="/content/concepts/expressions/" target="_top">here</a>. Specifying one or more <code>expressions</code> is mutually exclusive to specifying <code>record\_id</code> in the <code>options</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'global\_expression': An optional global expression to reduce the search space of the <code>expressions</code>. The default value is ''. </li>
                <li>'record\_id': A record ID identifying a single record, obtained at the time of <a href="/content/api/nodejs/GPUdb#insert_records"><code>insertion of the record</code></a> or by calling <a href="/content/api/nodejs/GPUdb#get_records_from_collection"><code>GPUdb#get\_records\_from\_collection</code></a> with the \*return\_record\_ids\* option. This option cannot be used to delete records from <a href="/content/concepts/tables/#replication" target="_top">replicated</a> tables. </li>

                <li>
                  'delete\_all\_records': If set to <code>true</code>, all records in the table will be deleted. If set to <code>false</code>, then the option is effectively ignored. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_records_request"><span className="type-signature" />delete\_records\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes record(s) matching the provided criteria from the given table. The record selection criteria can either be one or more <code>expressions</code> (matching multiple records), a single record identified by <code>record\_id</code> options, or all records when using <code>delete\_all\_records</code>. Note that the three selection criteria are mutually exclusive. This operation cannot be run on a view. The operation is synchronous meaning that a response will not be available until the request is completely processed and all the matching records are deleted. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_resource_group"><span className="type-signature" />delete\_resource\_group<span className="signature">(name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes a resource group. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the resource group to be deleted.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'cascade\_delete': If <code>true</code>, delete any existing entities owned by this group. Otherwise this request will return an error of any such entities exist. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_resource_group_request"><span className="type-signature" />delete\_resource\_group\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes a resource group. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_role"><span className="type-signature" />delete\_role<span className="signature">(name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Deletes an existing role.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the role to be deleted. Must be an existing role.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_role_request"><span className="type-signature" />delete\_role\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Deletes an existing role.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_user"><span className="type-signature" />delete\_user<span className="signature">(name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Deletes an existing user.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user to be deleted. Must be an existing user.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="delete_user_request"><span className="type-signature" />delete\_user\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Deletes an existing user.
        <p> <span className="b">Note:</span> This method should be used for on-premise deployments only. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="download_files"><span className="type-signature" />download\_files<span className="signature">(file\_names, read\_offsets, read\_lengths, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Downloads one or more files from <a href="/content/tools/kifs/" target="_top">KiFS</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>file\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">An array of the file names to download from KiFS. File paths may contain wildcard characters after the KiFS directory delimiter. Accepted wildcard characters are asterisk (\*) to represent any string of zero or more characters, and question mark (?) to indicate a single character.</td>
          </tr>

          <tr>
            <td className="name"><code>read\_offsets</code></td>
            <td className="type"> <span className="param-type">Array.\<Number></span> </td>
            <td className="description last">An array of starting byte offsets from which to read each respective file in <code>file\_names</code>. Must either be empty or the same length as <code>file\_names</code>. If empty, files are downloaded in their entirety. If not empty, <code>read\_lengths</code> must also not be empty.</td>
          </tr>

          <tr>
            <td className="name"><code>read\_lengths</code></td>
            <td className="type"> <span className="param-type">Array.\<Number></span> </td>
            <td className="description last">Array of number of bytes to read from each respective file in <code>file\_names</code>. Must either be empty or the same length as <code>file\_names</code>. If empty, files are downloaded in their entirety. If not empty, <code>read\_offsets</code> must also not be empty.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'file\_encoding': Encoding to be applied to the output file data. When using JSON serialization it is recommended to specify this as <code>base64</code>. Supported values:

                  <ul>
                    <li>'base64': Apply base64 encoding to the output file data. </li>
                    <li>'none': Do not apply any encoding to the output file data. </li>
                  </ul>

                  The default value is 'none'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="download_files_request"><span className="type-signature" />download\_files\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Downloads one or more files from <a href="/content/tools/kifs/" target="_top">KiFS</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_backup"><span className="type-signature" />drop\_backup<span className="signature">(backup\_name, datasink\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes one or more existing database <a href="/content/admin/backup_restore/#database-backup" target="_top">backups</a> and contained snapshots, accessible via the <a href="/content/concepts/data_sinks/" target="_top">data sink</a> specified by <code>datasink\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>backup\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the backup to be deleted. An empty string or '\*' will delete all existing backups. Any text followed by a '\*' will delete backups whose name starts with that text. When deleting multiple backups, <code>delete\_all\_backups</code> must be set to <code>true</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>datasink\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Data sink through which the backup is accessible.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'dry\_run': Whether or not to perform a dry run of a backup deletion. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'delete\_all\_backups': Allow multiple backups to be deleted if <code>true</code> and multiple backup names are found matching <code>backup\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'no\_error\_if\_not\_exists': Whether or not to suppress the error if the specified backup does not exist. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_backup_request"><span className="type-signature" />drop\_backup\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Deletes one or more existing database <a href="/content/admin/backup_restore/#database-backup" target="_top">backups</a> and contained snapshots, accessible via the <a href="/content/concepts/data_sinks/" target="_top">data sink</a> specified by <code>datasink\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_catalog"><span className="type-signature" />drop\_catalog<span className="signature">(name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Drops an existing catalog. Any external tables that depend on the catalog must be dropped before it can be dropped. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the catalog to be dropped. Must be an existing catalog.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_catalog_request"><span className="type-signature" />drop\_catalog\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Drops an existing catalog. Any external tables that depend on the catalog must be dropped before it can be dropped. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_credential"><span className="type-signature" />drop\_credential<span className="signature">(credential\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Drop an existing <a href="/content/concepts/credentials/" target="_top">credential</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>credential\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the credential to be dropped. Must be an existing credential.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_credential_request"><span className="type-signature" />drop\_credential\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Drop an existing <a href="/content/concepts/credentials/" target="_top">credential</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_datasink"><span className="type-signature" />drop\_datasink<span className="signature">(name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Drops an existing <a href="/content/concepts/data_sinks/" target="_top">data sink</a>.
        <p> By default, if any <a href="/content/concepts/table_monitors" target="_top">table monitors</a> use this sink as a destination, the request will be blocked unless option <code>clear\_table\_monitors</code> is <code>true</code>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the data sink to be dropped. Must be an existing data sink.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'clear\_table\_monitors': If <code>true</code>, any <a href="/content/concepts/table_monitors/" target="_top">table monitors</a> that use this data sink will be cleared. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_datasink_request"><span className="type-signature" />drop\_datasink\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Drops an existing <a href="/content/concepts/data_sinks/" target="_top">data sink</a>.
        <p> By default, if any <a href="/content/concepts/table_monitors" target="_top">table monitors</a> use this sink as a destination, the request will be blocked unless option <code>clear\_table\_monitors</code> is <code>true</code>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_datasource"><span className="type-signature" />drop\_datasource<span className="signature">(name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Drops an existing <a href="/content/concepts/data_sources/" target="_top">data source</a>. Any external tables that depend on the data source must be dropped before it can be dropped. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the data source to be dropped. Must be an existing data source.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_datasource_request"><span className="type-signature" />drop\_datasource\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Drops an existing <a href="/content/concepts/data_sources/" target="_top">data source</a>. Any external tables that depend on the data source must be dropped before it can be dropped. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_environment"><span className="type-signature" />drop\_environment<span className="signature">(environment\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Drop an existing <a href="/content/concepts/udf/" target="_top">user-defined function</a> (UDF) environment. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>environment\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the environment to be dropped. Must be an existing environment.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_not\_exists': If <code>true</code> and if the environment specified in <code>environment\_name</code> does not exist, no error is returned. If <code>false</code> and if the environment specified in <code>environment\_name</code> does not exist, then an error is returned. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_environment_request"><span className="type-signature" />drop\_environment\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Drop an existing <a href="/content/concepts/udf/" target="_top">user-defined function</a> (UDF) environment. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_schema"><span className="type-signature" />drop\_schema<span className="signature">(schema\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Drops an existing SQL-style <a href="/content/concepts/schemas/" target="_top">schema</a>, specified in <code>schema\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>schema\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the schema to be dropped. Must be an existing schema.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_not\_exists': If <code>true</code> and if the schema specified in <code>schema\_name</code> does not exist, no error is returned. If <code>false</code> and if the schema specified in <code>schema\_name</code> does not exist, then an error is returned. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'cascade': If <code>true</code>, all tables within the schema will be dropped. If <code>false</code>, the schema will be dropped only if empty. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="drop_schema_request"><span className="type-signature" />drop\_schema\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Drops an existing SQL-style <a href="/content/concepts/schemas/" target="_top">schema</a>, specified in <code>schema\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="execute_proc"><span className="type-signature" />execute\_proc<span className="signature">(proc\_name, params, bin\_params, input\_table\_names, input\_column\_names, output\_table\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Executes a proc. This endpoint is asynchronous and does not wait for the proc to complete before returning.
        <p> If the proc being executed is distributed, <code>input\_table\_names</code> and <code>input\_column\_names</code> may be passed to the proc to use for reading data, and <code>output\_table\_names</code> may be passed to the proc to use for writing data. </p>
        <p> If the proc being executed is non-distributed, these table parameters will be ignored. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>proc\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the proc to execute. Must be the name of a currently existing proc.</td>
          </tr>

          <tr>
            <td className="name"><code>params</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">A map containing named parameters to pass to the proc. Each key/value pair specifies the name of a parameter and its value. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>bin\_params</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">A map containing named binary parameters to pass to the proc. Each key/value pair specifies the name of a parameter and its value. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>input\_table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Names of the tables containing data to be passed to the proc. Each name specified must be the name of a currently existing table, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. If no table names are specified, no data will be passed to the proc. This parameter is ignored if the proc has a non-distributed execution mode. The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>input\_column\_names</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Map of table names from <code>input\_table\_names</code> to lists of names of columns from those tables that will be passed to the proc. Each column name specified must be the name of an existing column in the corresponding table. If a table name from <code>input\_table\_names</code> is not included, all columns from that table will be passed to the proc. This parameter is ignored if the proc has a non-distributed execution mode. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>output\_table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Names of the tables to which output data from the proc will be written, each in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. If a specified table does not exist, it will automatically be created with the same schema as the corresponding table (by order) from <code>input\_table\_names</code>, excluding any primary and shard keys. If a specified table is a non-persistent result table, it must not have primary or shard keys. If no table names are specified, no output data can be returned from the proc. This parameter is ignored if the proc has a non-distributed execution mode. The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'cache\_input': No longer supported; option will be ignored. The default value is ''. </li>
                <li>'use\_cached\_input': No longer supported; option will be ignored. The default value is ''. </li>
                <li>'run\_tag': A string that, if not empty, can be used in subsequent calls to <a href="/content/api/nodejs/GPUdb#show_proc_status"><code>GPUdb#show\_proc\_status</code></a> or <a href="/content/api/nodejs/GPUdb#kill_proc"><code>GPUdb#kill\_proc</code></a> to identify the proc instance. The default value is ''. </li>
                <li>'max\_output\_lines': The maximum number of lines of output from stdout and stderr to return via <a href="/content/api/nodejs/GPUdb#show_proc_status"><code>GPUdb#show\_proc\_status</code></a>. If the number of lines output exceeds the maximum, earlier lines are discarded. The default value is '100'. </li>

                <li>
                  'execute\_at\_startup': If <code>true</code>, an instance of the proc will run when the database is started instead of running immediately. The <code>run\_id</code> can be retrieved using <a href="/content/api/nodejs/GPUdb#show_proc"><code>GPUdb#show\_proc</code></a> and used in <a href="/content/api/nodejs/GPUdb#show_proc_status"><code>GPUdb#show\_proc\_status</code></a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'execute\_at\_startup\_as': Sets the alternate user name to execute this proc instance as when <code>execute\_at\_startup</code> is <code>true</code>. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="execute_proc_request"><span className="type-signature" />execute\_proc\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Executes a proc. This endpoint is asynchronous and does not wait for the proc to complete before returning.
        <p> If the proc being executed is distributed, <code>input\_table\_names</code> and <code>input\_column\_names</code> may be passed to the proc to use for reading data, and <code>output\_table\_names</code> may be passed to the proc to use for writing data. </p>
        <p> If the proc being executed is non-distributed, these table parameters will be ignored. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="execute_sql"><span className="type-signature" />execute\_sql<span className="signature">(statement, offset, limit, request\_schema\_str, data, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Execute a SQL statement (query, DML, or DDL).
        <p> See <a href="/content/sql/" target="_top">SQL Support</a> for the complete set of supported SQL commands. </p>
        <p> When a caller wants all the results from a large query (e.g., more than <a href="/content/config/#config-main-general" target="_top">max\_get\_records\_size</a> records), they can make multiple calls to this endpoint using the <code>offset</code> and <code>limit</code> parameters to page through the results. Normally, this will execute the <code>statement</code> query each time. To avoid re-executing the query each time and to keep the results in the same order, the caller should specify a <code>paging\_table</code> name to hold the results of the query between calls and specify the <code>paging\_table</code> on subsequent calls. When this is done, the caller should clear the paging table and any other tables in the <code>result\_table\_list</code> (both returned in the response) when they are done paging through the results. <code>paging\_table</code> (and <code>result\_table\_list</code>) will be empty if no paging table was created (e.g., when all the query results were returned in the first call). </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>statement</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">SQL statement (query, DML, or DDL) to be executed.</td>
          </tr>

          <tr>
            <td className="name"><code>offset</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the number of initial results to skip (this can be useful for paging through the results). The default value is 0. The minimum allowed value is 0. The maximum allowed value is MAX\_INT.</td>
          </tr>

          <tr>
            <td className="name"><code>limit</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the maximum number of results to be returned, or END\_OF\_SET (-9999) to indicate that the maximum number of results allowed by the server should be returned. The number of records returned will never exceed the server's own limit, defined by the <a href="/content/config/#config-main-general" target="_top">max\_get\_records\_size</a> parameter in the server configuration. Use <code>has\_more\_records</code> to see if more records exist in the result to be fetched, and <code>offset</code> and <code>limit</code> to request subsequent pages of results. The default value is -9999.</td>
          </tr>

          <tr>
            <td className="name"><code>request\_schema\_str</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Avro schema of <code>data</code>. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>data</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">An array of binary-encoded data for the records to be binded to the SQL query. Or use <code>query\_parameters</code> to pass the data in JSON format. The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'cost\_based\_optimization': If <code>false</code>, disables the cost-based optimization of the given query. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'distributed\_joins': If <code>true</code>, enables the use of distributed joins in servicing the given query. Any query requiring a distributed join will succeed, though hints can be used in the query to change the distribution of the source data to allow the query to succeed. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'distributed\_operations': If <code>true</code>, enables the use of distributed operations in servicing the given query. Any query requiring a distributed join will succeed, though hints can be used in the query to change the distribution of the source data to allow the query to succeed. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'ignore\_existing\_pk': Specifies the record collision error-suppression policy for inserting into or 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 (<code>update\_on\_existing\_pk</code> is <code>false</code>). If set to <code>true</code>, any record insert/update that is rejected for resulting in a primary key collision with an existing table record will be ignored with no error generated. If <code>false</code>, the rejection of any insert/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 <code>update\_on\_existing\_pk</code> is <code>true</code>, then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Ignore inserts/updates that result in primary key collisions with existing records. </li>
                    <li>'false': Treat as errors any inserts/updates that result in primary key collisions with existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'late\_materialization': If <code>true</code>, Joins/Filters results will always be materialized ( saved to result tables format). Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'paging\_table': When specified (or <code>paging\_table\_ttl</code> is set), the system will create a paging table to hold the results of the query, when the output has more records than are in the response (i.e., when <code>has\_more\_records</code> is <code>true</code>). If the specified paging table exists, the records from the paging table are returned without re-evaluating the query. It is the caller's responsibility to clear the <code>paging\_table</code> and other tables in the <code>result\_table\_list</code> (both returned in the response) when they are done with this query. </li>
                <li>'paging\_table\_ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the paging table. -1 indicates no timeout. Setting this option will cause a paging table to be generated when needed. The <code>paging\_table</code> and other tables in the <code>result\_table\_list</code> (both returned in the response) will be automatically cleared after the TTL expires, if set to a positive number. However, it is still recommended that the caller clear these tables when they are done with this query. </li>

                <li>
                  'parallel\_execution': If <code>false</code>, disables the parallel step execution of the given query. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'plan\_cache': If <code>false</code>, disables plan caching for the given query. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'prepare\_mode': If <code>true</code>, compiles a query into an execution plan and saves it in query cache. Query execution is not performed and an empty response will be returned to user. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'preserve\_dict\_encoding': If <code>true</code>, then columns that were dict encoded in the source table will be dict encoded in the projection table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'query\_parameters': Query parameters in JSON array or arrays (for inserting multiple rows). This can be used instead of <code>data</code> and <code>request\_schema\_str</code>. </li>

                <li>
                  'results\_caching': If <code>false</code>, disables caching of the results of the given query. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'rule\_based\_optimization': If <code>false</code>, disables rule-based rewrite optimizations for the given query. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'ssq\_optimization': If <code>false</code>, scalar subqueries will be translated into joins. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the intermediate result tables used in query execution. </li>

                <li>
                  'update\_on\_existing\_pk': Specifies the record collision policy for inserting into or updating a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>. If set to <code>true</code>, any existing table record with primary key values that match those of a record being inserted or updated will be replaced by that record. If set to <code>false</code>, any such primary key collision will result in the insert/update being rejected and the error handled as determined by <code>ignore\_existing\_pk</code>. If the specified table does not have a primary key, then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Replace the collided-into record with the record inserted or updated when a new/modified record causes a primary key collision with an existing record. </li>
                    <li>'false': Reject the insert or update when it results in a primary key collision with an existing record. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'validate\_change\_column': When changing a column using alter table, validate the change before applying it. If <code>true</code>, then validate all values. A value too large (or too long) for the new type will prevent any change. If <code>false</code>, then when a value is too large or long, it will be truncated. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'current\_schema': Use the supplied value as the <a href="/content/concepts/schemas/#default-schema" target="_top">default schema</a> when processing this SQL command. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="execute_sql_request"><span className="type-signature" />execute\_sql\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Execute a SQL statement (query, DML, or DDL).
        <p> See <a href="/content/sql/" target="_top">SQL Support</a> for the complete set of supported SQL commands. </p>
        <p> When a caller wants all the results from a large query (e.g., more than <a href="/content/config/#config-main-general" target="_top">max\_get\_records\_size</a> records), they can make multiple calls to this endpoint using the <code>offset</code> and <code>limit</code> parameters to page through the results. Normally, this will execute the <code>statement</code> query each time. To avoid re-executing the query each time and to keep the results in the same order, the caller should specify a <code>paging\_table</code> name to hold the results of the query between calls and specify the <code>paging\_table</code> on subsequent calls. When this is done, the caller should clear the paging table and any other tables in the <code>result\_table\_list</code> (both returned in the response) when they are done paging through the results. <code>paging\_table</code> (and <code>result\_table\_list</code>) will be empty if no paging table was created (e.g., when all the query results were returned in the first call). </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="export_query_metrics"><span className="type-signature" />export\_query\_metrics<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Export query metrics to a given destination. Returns query metrics. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'expression': Filter for multi query export. </li>
                <li>'filepath': Path to export target specified as a filename or existing directory. </li>

                <li>
                  'format': Specifies which format to export the metrics. Supported values:

                  <ul>
                    <li>'json': Generic JSON output. </li>
                    <li>'json\_trace\_event': Chromium/Perfetto trace event format. </li>
                  </ul>

                  The default value is 'json'.
                </li>

                <li>'job\_id': Export query metrics for the currently running job. </li>
                <li>'limit': Record limit per file for multi query export. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="export_query_metrics_request"><span className="type-signature" />export\_query\_metrics\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Export query metrics to a given destination. Returns query metrics. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="export_records_to_files"><span className="type-signature" />export\_records\_to\_files<span className="signature">(table\_name, filepath, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Export records from a table to files. All tables can be exported, in full or partial (see <code>columns\_to\_export</code> and <code>columns\_to\_skip</code>). Additional filtering can be applied when using export table with expression through SQL. Default destination is KIFS, though other storage types (Azure, S3, GCS, and HDFS) are supported through <code>datasink\_name</code>; see <a href="/content/api/nodejs/GPUdb#create_datasink"><code>GPUdb#create\_datasink</code></a>.
        <p> Server's local file system is not supported. Default file format is delimited text. See options for different file types and different options for each file type. Table is saved to a single file if within max file size limits (may vary depending on datasink type). If not, then table is split into multiple files; these may be smaller than the max size limit. </p>
        <p> All filenames created are returned in the response. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The name of the table whose records are to be exported.</td>
          </tr>

          <tr>
            <td className="name"><code>filepath</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Path to data export target. If <code>filepath</code> has a file extension, it is read as the name of a file. If <code>filepath</code> is a directory, then the source table name with a random UUID appended will be used as the name of each exported file, all written to that directory. If filepath is a filename, then all exported files will have a random UUID appended to the given name. In either case, the target directory specified or implied must exist. The names of all exported files are returned in the response.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'batch\_size': Number of records to be exported as a batch. The default value is '1000000'. </li>
                <li>'column\_formats': For each source column specified, applies the column-property-bound format. Currently supported column properties include date, time, and datetime. The parameter value must be formatted as a JSON string of maps of column names to maps of column properties to their corresponding column formats, e.g., '{"{"} "order\_date" : {"{"} "date" : "%Y.%m.%d" {"}"}, "order\_time" : {"{"} "time" : "%H:%M:%S" {"}"} {"}"}'. See <code>default\_column\_formats</code> for valid format syntax. </li>
                <li>'columns\_to\_export': Specifies a comma-delimited list of columns from the source table to export, written to the output file in the order they are given. Column names can be provided, in which case the target file will use those names as the column headers as well. Alternatively, column numbers can be specified--discretely or as a range. For example, a value of '5,7,1..3' will write values from the fifth column in the source table into the first column in the target file, from the seventh column in the source table into the second column in the target file, and from the first through third columns in the source table into the third through fifth columns in the target file. Mutually exclusive with <code>columns\_to\_skip</code>. </li>
                <li>'columns\_to\_skip': Comma-separated list of column names or column numbers to not export. All columns in the source table not specified will be written to the target file in the order they appear in the table definition. Mutually exclusive with <code>columns\_to\_export</code>. </li>
                <li>'datasink\_name': Datasink name, created using <a href="/content/api/nodejs/GPUdb#create_datasink"><code>GPUdb#create\_datasink</code></a>. </li>
                <li>'default\_column\_formats': Specifies the default format to use to write data. Currently supported column properties include date, time, and datetime. This default column-property-bound format can be overridden by specifying a column property and format for a given source column in <code>column\_formats</code>. For each specified annotation, the format will apply to all columns with that annotation unless custom <code>column\_formats</code> for that annotation are specified. The parameter value must be formatted as a JSON string that is a map of column properties to their respective column formats, e.g., '{"{"} "date" : "%Y.%m.%d", "time" : "%H:%M:%S" {"}"}'. Column formats are specified as a string of control characters and plain text. The supported control characters are 'Y', 'm', 'd', 'H', 'M', 'S', and 's', which follow the Linux 'strptime()' specification, as well as 's', which specifies seconds and fractional seconds (though the fractional component will be truncated past milliseconds). Formats for the 'date' annotation must include the 'Y', 'm', and 'd' control characters. Formats for the 'time' annotation must include the 'H', 'M', and either 'S' or 's' (but not both) control characters. Formats for the 'datetime' annotation meet both the 'date' and 'time' control character requirements. For example, '{"{"}"datetime" : "%m/%d/%Y %H:%M:%S" {"}"}' would be used to write text as "05/04/2000 12:12:11" </li>
                <li>'export\_ddl': Save DDL to a separate file. The default value is 'false'. </li>
                <li>'file\_extension': Extension to give the export file. The default value is '.csv'. </li>

                <li>
                  'file\_type': Specifies the file format to use when exporting data. Supported values:

                  <ul>
                    <li>'delimited\_text': Delimited text file format; e.g., CSV, TSV, PSV, etc. </li>
                    <li>'parquet' </li>
                  </ul>

                  The default value is 'delimited\_text'.
                </li>

                <li>
                  'kinetica\_header': Whether to include a Kinetica proprietary header. Will not be written if <code>text\_has\_header</code> is <code>false</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'kinetica\_header\_delimiter': If a Kinetica proprietary header is included, then specify a property separator. Different from column delimiter. The default value is '|'. </li>

                <li>
                  'compression\_type': File compression type. GZip can be applied to text and Parquet files. Snappy can only be applied to Parquet files, and is the default compression for them. Supported values:

                  <ul>
                    <li>'uncompressed' </li>
                    <li>'snappy' </li>
                    <li>'gzip' </li>
                  </ul>
                </li>

                <li>
                  'single\_file': Save records to a single file. This option may be ignored if file size exceeds internal file size limits (this limit will differ on different targets). Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                    <li>'overwrite' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'single\_file\_max\_size': Max file size (in MB) to allow saving to a single file. May be overridden by target limitations. The default value is ''. </li>
                <li>'text\_delimiter': Specifies the character to write out to delimit field values and field names in the header (if present). For <code>delimited\_text</code> <code>file\_type</code> only. The default value is ','. </li>

                <li>
                  'text\_has\_header': Indicates whether to write out a header row. For <code>delimited\_text</code><code>file\_type</code> only. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'text\_null\_string': Specifies the character string that should be written out for the null value in the data. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '\N'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="export_records_to_files_request"><span className="type-signature" />export\_records\_to\_files\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Export records from a table to files. All tables can be exported, in full or partial (see <code>columns\_to\_export</code> and <code>columns\_to\_skip</code>). Additional filtering can be applied when using export table with expression through SQL. Default destination is KIFS, though other storage types (Azure, S3, GCS, and HDFS) are supported through <code>datasink\_name</code>; see <a href="/content/api/nodejs/GPUdb#create_datasink"><code>GPUdb#create\_datasink</code></a>.
        <p> Server's local file system is not supported. Default file format is delimited text. See options for different file types and different options for each file type. Table is saved to a single file if within max file size limits (may vary depending on datasink type). If not, then table is split into multiple files; these may be smaller than the max size limit. </p>
        <p> All filenames created are returned in the response. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="export_records_to_table"><span className="type-signature" />export\_records\_to\_table<span className="signature">(table\_name, remote\_query, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Exports records from source table to the specified target table in an external database. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table from which the data will be exported to remote database, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>remote\_query</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Parameterized insert query to export gpudb table data into remote database. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'batch\_size': Batch size, which determines how many rows to export per round trip. The default value is '200000'. </li>
                <li>'datasink\_name': Name of an existing external data sink to which table name specified in <code>table\_name</code> will be exported. </li>
                <li>'jdbc\_session\_init\_statement': Executes the statement per each JDBC session before doing actual load. The default value is ''. </li>
                <li>'jdbc\_connection\_init\_statement': Executes the statement once before doing actual load. The default value is ''. </li>
                <li>'remote\_table': Name of the target table to which source table is exported. When this option is specified remote\_query cannot be specified. The default value is ''. </li>

                <li>
                  'use\_st\_geomfrom\_casts': Wraps parameterized variables with st\_geomfromtext or st\_geomfromwkb based on source column type. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'use\_indexed\_parameters': Uses \$n style syntax when generating insert query for remote\_table option. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="export_records_to_table_request"><span className="type-signature" />export\_records\_to\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Exports records from source table to the specified target table in an external database. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter"><span className="type-signature" />filter<span className="signature">(table\_name, view\_name, expression, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Filters data based on the specified expression. The results are stored in a <a href="/content/concepts/filtered_views/" target="_top">result set</a> with the given <code>view\_name</code>.
        <p> For details see <a href="/content/concepts/expressions/" target="_top">Expressions</a>. </p>
        <p> The response message contains the number of points for which the expression evaluated to be true, which is equivalent to the size of the result view. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to filter, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. This may be the name of a table or a view (when chaining queries).</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>expression</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The select expression to filter the specified table. For details see <a href="/content/concepts/expressions/" target="_top">Expressions</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema is non-existent, it will be automatically created. </li>
                <li>'view\_id': View this filtered-view is part of. The default value is ''. </li>
                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the view specified in <code>view\_name</code>. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_area"><span className="type-signature" />filter\_by\_area<span className="signature">(table\_name, view\_name, x\_column\_name, x\_vector, y\_column\_name, y\_vector, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which objects from a table are within a named area of interest (NAI/polygon). The operation is synchronous, meaning that a response will not be returned until all the matching objects are fully available. The response payload provides the count of the resulting set. A new resultant set (view) which satisfies the input NAI restriction specification is created with the name <code>view\_name</code> passed in as part of the input. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to filter, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. This may be the name of a table or a view (when chaining queries).</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>x\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column containing the x values to be filtered.</td>
          </tr>

          <tr>
            <td className="name"><code>x\_vector</code></td>
            <td className="type"> <span className="param-type">Array.\<Number></span> </td>
            <td className="description last">List of x coordinates of the vertices of the polygon representing the area to be filtered.</td>
          </tr>

          <tr>
            <td className="name"><code>y\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column containing the y values to be filtered.</td>
          </tr>

          <tr>
            <td className="name"><code>y\_vector</code></td>
            <td className="type"> <span className="param-type">Array.\<Number></span> </td>
            <td className="description last">List of y coordinates of the vertices of the polygon representing the area to be filtered.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema provided is non-existent, it will be automatically created. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_area_geometry"><span className="type-signature" />filter\_by\_area\_geometry<span className="signature">(table\_name, view\_name, column\_name, x\_vector, y\_vector, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which geospatial geometry objects from a table intersect a named area of interest (NAI/polygon). The operation is synchronous, meaning that a response will not be returned until all the matching objects are fully available. The response payload provides the count of the resulting set. A new resultant set (view) which satisfies the input NAI restriction specification is created with the name <code>view\_name</code> passed in as part of the input. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to filter, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. This may be the name of a table or a view (when chaining queries).</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the geospatial geometry column to be filtered.</td>
          </tr>

          <tr>
            <td className="name"><code>x\_vector</code></td>
            <td className="type"> <span className="param-type">Array.\<Number></span> </td>
            <td className="description last">List of x coordinates of the vertices of the polygon representing the area to be filtered.</td>
          </tr>

          <tr>
            <td className="name"><code>y\_vector</code></td>
            <td className="type"> <span className="param-type">Array.\<Number></span> </td>
            <td className="description last">List of y coordinates of the vertices of the polygon representing the area to be filtered.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] The schema for the newly created view. If the schema is non-existent, it will be automatically created. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_area_geometry_request"><span className="type-signature" />filter\_by\_area\_geometry\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which geospatial geometry objects from a table intersect a named area of interest (NAI/polygon). The operation is synchronous, meaning that a response will not be returned until all the matching objects are fully available. The response payload provides the count of the resulting set. A new resultant set (view) which satisfies the input NAI restriction specification is created with the name <code>view\_name</code> passed in as part of the input. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_area_request"><span className="type-signature" />filter\_by\_area\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which objects from a table are within a named area of interest (NAI/polygon). The operation is synchronous, meaning that a response will not be returned until all the matching objects are fully available. The response payload provides the count of the resulting set. A new resultant set (view) which satisfies the input NAI restriction specification is created with the name <code>view\_name</code> passed in as part of the input. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_box"><span className="type-signature" />filter\_by\_box<span className="signature">(table\_name, view\_name, x\_column\_name, min\_x, max\_x, y\_column\_name, min\_y, max\_y, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates how many objects within the given table lie in a rectangular box. The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new resultant set which satisfies the input NAI restriction specification is also created when a <code>view\_name</code> is passed in as part of the input payload. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the bounding box operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table.</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>x\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column on which to perform the bounding box query. Must be a valid numeric column.</td>
          </tr>

          <tr>
            <td className="name"><code>min\_x</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Lower bound for the column chosen by <code>x\_column\_name</code>. Must be less than or equal to <code>max\_x</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>max\_x</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Upper bound for <code>x\_column\_name</code>. Must be greater than or equal to <code>min\_x</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>y\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of a column on which to perform the bounding box query. Must be a valid numeric column.</td>
          </tr>

          <tr>
            <td className="name"><code>min\_y</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Lower bound for <code>y\_column\_name</code>. Must be less than or equal to <code>max\_y</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>max\_y</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Upper bound for <code>y\_column\_name</code>. Must be greater than or equal to <code>min\_y</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema is non-existent, it will be automatically created. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_box_geometry"><span className="type-signature" />filter\_by\_box\_geometry<span className="signature">(table\_name, view\_name, column\_name, min\_x, max\_x, min\_y, max\_y, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which geospatial geometry objects from a table intersect a rectangular box. The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new resultant set which satisfies the input NAI restriction specification is also created when a <code>view\_name</code> is passed in as part of the input payload. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the bounding box operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table.</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the geospatial geometry column to be filtered.</td>
          </tr>

          <tr>
            <td className="name"><code>min\_x</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Lower bound for the x-coordinate of the rectangular box. Must be less than or equal to <code>max\_x</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>max\_x</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Upper bound for the x-coordinate of the rectangular box. Must be greater than or equal to <code>min\_x</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>min\_y</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Lower bound for the y-coordinate of the rectangular box. Must be less than or equal to <code>max\_y</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>max\_y</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Upper bound for the y-coordinate of the rectangular box. Must be greater than or equal to <code>min\_y</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema provided is non-existent, it will be automatically created. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_box_geometry_request"><span className="type-signature" />filter\_by\_box\_geometry\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which geospatial geometry objects from a table intersect a rectangular box. The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new resultant set which satisfies the input NAI restriction specification is also created when a <code>view\_name</code> is passed in as part of the input payload. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_box_request"><span className="type-signature" />filter\_by\_box\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates how many objects within the given table lie in a rectangular box. The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new resultant set which satisfies the input NAI restriction specification is also created when a <code>view\_name</code> is passed in as part of the input payload. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_geometry"><span className="type-signature" />filter\_by\_geometry<span className="signature">(table\_name, view\_name, column\_name, input\_wkt, operation, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Applies a geometry filter against a geospatial geometry column in a given table or view. The filtering geometry is provided by <code>input\_wkt</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the filter by geometry will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table or view containing a geospatial geometry column.</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column to be used in the filter. Must be a geospatial geometry column.</td>
          </tr>

          <tr>
            <td className="name"><code>input\_wkt</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">A geometry in WKT format that will be used to filter the objects in <code>table\_name</code>. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>operation</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              The geometric filtering operation to perform. Supported values:

              <ul>
                <li>'contains': Matches records that contain the given WKT in <code>input\_wkt</code>, i.e. the given WKT is within the bounds of a record's geometry. </li>
                <li>'crosses': Matches records that cross the given WKT. </li>
                <li>'disjoint': Matches records that are disjoint from the given WKT. </li>
                <li>'equals': Matches records that are the same as the given WKT. </li>
                <li>'intersects': Matches records that intersect the given WKT. </li>
                <li>'overlaps': Matches records that overlap the given WKT. </li>
                <li>'touches': Matches records that touch the given WKT. </li>
                <li>'within': Matches records that are within the given WKT. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema provided is non-existent, it will be automatically created. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_geometry_request"><span className="type-signature" />filter\_by\_geometry\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Applies a geometry filter against a geospatial geometry column in a given table or view. The filtering geometry is provided by <code>input\_wkt</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_list"><span className="type-signature" />filter\_by\_list<span className="signature">(table\_name, view\_name, column\_values\_map, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Calculates which records from a table have values in the given list for the corresponding column. The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new resultant set (view) which satisfies the input filter specification is also created if a <code>view\_name</code> is passed in as part of the request.
        <p> For example, if a type definition has the columns 'x' and 'y', then a filter by list query with the column map {"{"}"x":\["10.1", "2.3"], "y":\["0.0", "-31.5", "42.0"]{"}"} will return the count of all data points whose x and y values match both in the respective x- and y-lists, e.g., "x = 10.1 and y = 0.0", "x = 2.3 and y = -31.5", etc. However, a record with "x = 10.1 and y = -31.5" or "x = 2.3 and y = 0.0" would not be returned because the values in the given lists do not correspond. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to filter, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. This may be the name of a table or a view (when chaining queries).</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_values\_map</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">List of values for the corresponding column in the table.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema provided is non-existent, it will be automatically created. </li>

                <li>
                  'filter\_mode': String indicating the filter mode, either 'in\_list' or 'not\_in\_list'. Supported values:

                  <ul>
                    <li>'in\_list': The filter will match all items that are in the provided list(s). </li>
                    <li>'not\_in\_list': The filter will match all items that are not in the provided list(s). </li>
                  </ul>

                  The default value is 'in\_list'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_list_request"><span className="type-signature" />filter\_by\_list\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Calculates which records from a table have values in the given list for the corresponding column. The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new resultant set (view) which satisfies the input filter specification is also created if a <code>view\_name</code> is passed in as part of the request.
        <p> For example, if a type definition has the columns 'x' and 'y', then a filter by list query with the column map {"{"}"x":\["10.1", "2.3"], "y":\["0.0", "-31.5", "42.0"]{"}"} will return the count of all data points whose x and y values match both in the respective x- and y-lists, e.g., "x = 10.1 and y = 0.0", "x = 2.3 and y = -31.5", etc. However, a record with "x = 10.1 and y = -31.5" or "x = 2.3 and y = 0.0" would not be returned because the values in the given lists do not correspond. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_radius"><span className="type-signature" />filter\_by\_radius<span className="signature">(table\_name, view\_name, x\_column\_name, x\_center, y\_column\_name, y\_center, radius, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Calculates which objects from a table lie within a circle with the given radius and center point (i.e. circular NAI). The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new resultant set (view) which satisfies the input circular NAI restriction specification is also created if a <code>view\_name</code> is passed in as part of the request.
        <p> For track data, all track points that lie within the circle plus one point on either side of the circle (if the track goes beyond the circle) will be included in the result. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the filter by radius operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table.</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>x\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column to be used for the x-coordinate (the longitude) of the center.</td>
          </tr>

          <tr>
            <td className="name"><code>x\_center</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Value of the longitude of the center. Must be within \[-180.0, 180.0]. The minimum allowed value is -180. The maximum allowed value is 180.</td>
          </tr>

          <tr>
            <td className="name"><code>y\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column to be used for the y-coordinate-the latitude-of the center.</td>
          </tr>

          <tr>
            <td className="name"><code>y\_center</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Value of the latitude of the center. Must be within \[-90.0, 90.0]. The minimum allowed value is -90. The maximum allowed value is 90.</td>
          </tr>

          <tr>
            <td className="name"><code>radius</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">The radius of the circle within which the search will be performed. Must be a non-zero positive value. It is in meters; so, for example, a value of '42000' means 42 km. The minimum allowed value is 0. The maximum allowed value is MAX\_INT.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema which is to contain the newly created view. If the schema is non-existent, it will be automatically created. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_radius_geometry"><span className="type-signature" />filter\_by\_radius\_geometry<span className="signature">(table\_name, view\_name, column\_name, x\_center, y\_center, radius, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which geospatial geometry objects from a table intersect a circle with the given radius and center point (i.e. circular NAI). The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new resultant set (view) which satisfies the input circular NAI restriction specification is also created if a <code>view\_name</code> is passed in as part of the request. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the filter by radius operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table.</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the geospatial geometry column to be filtered.</td>
          </tr>

          <tr>
            <td className="name"><code>x\_center</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Value of the longitude of the center. Must be within \[-180.0, 180.0]. The minimum allowed value is -180. The maximum allowed value is 180.</td>
          </tr>

          <tr>
            <td className="name"><code>y\_center</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Value of the latitude of the center. Must be within \[-90.0, 90.0]. The minimum allowed value is -90. The maximum allowed value is 90.</td>
          </tr>

          <tr>
            <td className="name"><code>radius</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">The radius of the circle within which the search will be performed. Must be a non-zero positive value. It is in meters; so, for example, a value of '42000' means 42 km. The minimum allowed value is 0. The maximum allowed value is MAX\_INT.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema provided is non-existent, it will be automatically created. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_radius_geometry_request"><span className="type-signature" />filter\_by\_radius\_geometry\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which geospatial geometry objects from a table intersect a circle with the given radius and center point (i.e. circular NAI). The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new resultant set (view) which satisfies the input circular NAI restriction specification is also created if a <code>view\_name</code> is passed in as part of the request. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_radius_request"><span className="type-signature" />filter\_by\_radius\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Calculates which objects from a table lie within a circle with the given radius and center point (i.e. circular NAI). The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new resultant set (view) which satisfies the input circular NAI restriction specification is also created if a <code>view\_name</code> is passed in as part of the request.
        <p> For track data, all track points that lie within the circle plus one point on either side of the circle (if the track goes beyond the circle) will be included in the result. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_range"><span className="type-signature" />filter\_by\_range<span className="signature">(table\_name, view\_name, column\_name, lower\_bound, upper\_bound, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Calculates which objects from a table have a column that is within the given bounds. An object from the table identified by <code>table\_name</code> is added to the view <code>view\_name</code> if its column is within \[<code>lower\_bound</code>, <code>upper\_bound</code>] (inclusive). The operation is synchronous. The response provides a count of the number of objects which passed the bound filter. Although this functionality can also be accomplished with the standard filter function, it is more efficient.
        <p> For track objects, the count reflects how many points fall within the given bounds (which may not include all the track points of any given track). </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the filter by range operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table.</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of a column on which the operation would be applied.</td>
          </tr>

          <tr>
            <td className="name"><code>lower\_bound</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Value of the lower bound (inclusive).</td>
          </tr>

          <tr>
            <td className="name"><code>upper\_bound</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Value of the upper bound (inclusive).</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema is non-existent, it will be automatically created. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_range_request"><span className="type-signature" />filter\_by\_range\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Calculates which objects from a table have a column that is within the given bounds. An object from the table identified by <code>table\_name</code> is added to the view <code>view\_name</code> if its column is within \[<code>lower\_bound</code>, <code>upper\_bound</code>] (inclusive). The operation is synchronous. The response provides a count of the number of objects which passed the bound filter. Although this functionality can also be accomplished with the standard filter function, it is more efficient.
        <p> For track objects, the count reflects how many points fall within the given bounds (which may not include all the track points of any given track). </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_series"><span className="type-signature" />filter\_by\_series<span className="signature">(table\_name, view\_name, track\_id, target\_track\_ids, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Filters objects matching all points of the given track (works only on track type data). It allows users to specify a particular track to find all other points in the table that fall within specified ranges (spatial and temporal) of all points of the given track. Additionally, the user can specify another track to see if the two intersect (or go close to each other within the specified ranges). The user also has the flexibility of using different metrics for the spatial distance calculation: Euclidean (flat geometry) or Great Circle (spherical geometry to approximate the Earth's surface distances). The filtered points are stored in a newly created result set. The return value of the function is the number of points in the resultant set (view).
        <p> This operation is synchronous, meaning that a response will not be returned until all the objects are fully available. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the filter by track operation will be performed, 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 with a <a href="/content/geospatial/geo_objects/" target="_top">track</a> present.</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>track\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The ID of the track which will act as the filtering points. Must be an existing track within the given table.</td>
          </tr>

          <tr>
            <td className="name"><code>target\_track\_ids</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Up to one track ID to intersect with the "filter" track. If any provided, it must be an valid track ID within the given set.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema is non-existent, it will be automatically created. </li>
                <li>'spatial\_radius': A positive number passed as a string representing the radius of the search area centered around each track point's geospatial coordinates. The value is interpreted in meters. Required parameter. The minimum allowed value is '0'. </li>
                <li>'time\_radius': A positive number passed as a string representing the maximum allowable time difference between the timestamps of a filtered object and the given track's points. The value is interpreted in seconds. Required parameter. The minimum allowed value is '0'. </li>

                <li>
                  'spatial\_distance\_metric': A string representing the coordinate system to use for the spatial search criteria. Acceptable values are 'euclidean' and 'great\_circle'. Optional parameter; default is 'euclidean'. Supported values:

                  <ul>
                    <li>'euclidean' </li>
                    <li>'great\_circle' </li>
                  </ul>
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_series_request"><span className="type-signature" />filter\_by\_series\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Filters objects matching all points of the given track (works only on track type data). It allows users to specify a particular track to find all other points in the table that fall within specified ranges (spatial and temporal) of all points of the given track. Additionally, the user can specify another track to see if the two intersect (or go close to each other within the specified ranges). The user also has the flexibility of using different metrics for the spatial distance calculation: Euclidean (flat geometry) or Great Circle (spherical geometry to approximate the Earth's surface distances). The filtered points are stored in a newly created result set. The return value of the function is the number of points in the resultant set (view).
        <p> This operation is synchronous, meaning that a response will not be returned until all the objects are fully available. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_string"><span className="type-signature" />filter\_by\_string<span className="signature">(table\_name, view\_name, expression, mode, column\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which objects from a table or view match a string expression for the given string columns. Setting <code>case\_sensitive</code> can modify case sensitivity in matching for all modes except <code>search</code>. For <code>search</code> mode details and limitations, see <a href="/content/concepts/full_text_search/" target="_top">Full Text Search</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table on which the filter operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table or view.</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>expression</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The expression with which to filter the table.</td>
          </tr>

          <tr>
            <td className="name"><code>mode</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              The string filtering mode to apply. See below for details. Supported values:

              <ul>
                <li>'search': Full text search query with wildcards and boolean operators. Note that for this mode, no column can be specified in <code>column\_names</code>; all string columns of the table that have text search enabled will be searched. </li>
                <li>'equals': Exact whole-string match (accelerated). </li>
                <li>'contains': Partial substring match (not accelerated). If the column is a string type (non-charN) and the number of records is too large, it will return 0. </li>
                <li>'starts\_with': Strings that start with the given expression (not accelerated). If the column is a string type (non-charN) and the number of records is too large, it will return 0. </li>
                <li>'regex': Full regular expression search (not accelerated). If the column is a string type (non-charN) and the number of records is too large, it will return 0. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of columns on which to apply the filter. Ignored for <code>search</code> mode.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema is non-existent, it will be automatically created. </li>

                <li>
                  'case\_sensitive': If <code>false</code> then string filtering will ignore case. Does not apply to <code>search</code> mode. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_string_request"><span className="type-signature" />filter\_by\_string\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which objects from a table or view match a string expression for the given string columns. Setting <code>case\_sensitive</code> can modify case sensitivity in matching for all modes except <code>search</code>. For <code>search</code> mode details and limitations, see <a href="/content/concepts/full_text_search/" target="_top">Full Text Search</a>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_table"><span className="type-signature" />filter\_by\_table<span className="signature">(table\_name, view\_name, column\_name, source\_table\_name, source\_table\_column\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Filters objects in one table based on objects in another table. The user must specify matching column types from the two tables (i.e. the target table from which objects will be filtered and the source table based on which the filter will be created); the column names need not be the same. If a <code>view\_name</code> is specified, then the filtered objects will then be put in a newly created view. The operation is synchronous, meaning that a response will not be returned until all objects are fully available in the result view. The return value contains the count (i.e. the size) of the resulting view. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table whose data will be filtered, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table.</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column by whose value the data will be filtered from the table designated by <code>table\_name</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>source\_table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table whose data will be compared against in the table called <code>table\_name</code>, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table.</td>
          </tr>

          <tr>
            <td className="name"><code>source\_table\_column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the column in the <code>source\_table\_name</code> whose values will be used as the filter for table <code>table\_name</code>. Must be a geospatial geometry column if in 'spatial' mode; otherwise, Must match the type of the <code>column\_name</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema is non-existent, it will be automatically created. </li>

                <li>
                  'filter\_mode': String indicating the filter mode, either <code>in\_table</code> or <code>not\_in\_table</code>. Supported values:

                  <ul>
                    <li>'in\_table' </li>
                    <li>'not\_in\_table' </li>
                  </ul>

                  The default value is 'in\_table'.
                </li>

                <li>
                  'mode': Mode - should be either <code>spatial</code> or <code>normal</code>. Supported values:

                  <ul>
                    <li>'normal' </li>
                    <li>'spatial' </li>
                  </ul>

                  The default value is 'normal'.
                </li>

                <li>'buffer': Buffer size, in meters. Only relevant for <code>spatial</code> mode. The default value is '0'. </li>

                <li>
                  'buffer\_method': Method used to buffer polygons. Only relevant for <code>spatial</code> mode. Supported values:

                  <ul>
                    <li>'normal' </li>
                    <li>'geos': Use geos 1 edge per corner algorithm. </li>
                  </ul>

                  The default value is 'normal'.
                </li>

                <li>'max\_partition\_size': Maximum number of points in a partition. Only relevant for <code>spatial</code> mode. The default value is '0'. </li>
                <li>'max\_partition\_score': Maximum number of points \* edges in a partition. Only relevant for <code>spatial</code> mode. The default value is '8000000'. </li>
                <li>'x\_column\_name': Name of column containing x value of point being filtered in <code>spatial</code> mode. The default value is 'x'. </li>
                <li>'y\_column\_name': Name of column containing y value of point being filtered in <code>spatial</code> mode. The default value is 'y'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_table_request"><span className="type-signature" />filter\_by\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Filters objects in one table based on objects in another table. The user must specify matching column types from the two tables (i.e. the target table from which objects will be filtered and the source table based on which the filter will be created); the column names need not be the same. If a <code>view\_name</code> is specified, then the filtered objects will then be put in a newly created view. The operation is synchronous, meaning that a response will not be returned until all objects are fully available in the result view. The return value contains the count (i.e. the size) of the resulting view. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_value"><span className="type-signature" />filter\_by\_value<span className="signature">(table\_name, view\_name, is\_string, value, value\_str, column\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which objects from a table has a particular value for a particular column. The input parameters provide a way to specify either a String or a Double valued column and a desired value for the column on which the filter is performed. The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new result view which satisfies the input filter restriction specification is also created with a view name passed in as part of the input payload. Although this functionality can also be accomplished with the standard filter function, it is more efficient. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of an existing table on which to perform the calculation, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>view\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. Must not be an already existing table or view. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>is\_string</code></td>
            <td className="type"> <span className="param-type">Boolean</span> </td>
            <td className="description last">Indicates whether the value being searched for is string or numeric.</td>
          </tr>

          <tr>
            <td className="name"><code>value</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">The value to search for. The default value is 0.</td>
          </tr>

          <tr>
            <td className="name"><code>value\_str</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The string value to search for. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of a column on which the filter by value would be applied.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'create\_temp\_table': If <code>true</code>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>view\_name</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <code>qualified\_view\_name</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'collection\_name': \[DEPRECATED--please specify the containing schema for the view as part of <code>view\_name</code> and use <a href="/content/api/nodejs/GPUdb#create_schema"><code>GPUdb#create\_schema</code></a> to create the schema if non-existent] Name of a schema for the newly created view. If the schema is non-existent, it will be automatically created. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_by_value_request"><span className="type-signature" />filter\_by\_value\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Calculates which objects from a table has a particular value for a particular column. The input parameters provide a way to specify either a String or a Double valued column and a desired value for the column on which the filter is performed. The operation is synchronous, meaning that a response will not be returned until all the objects are fully available. The response payload provides the count of the resulting set. A new result view which satisfies the input filter restriction specification is also created with a view name passed in as part of the input payload. Although this functionality can also be accomplished with the standard filter function, it is more efficient. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="filter_request"><span className="type-signature" />filter\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Filters data based on the specified expression. The results are stored in a <a href="/content/concepts/filtered_views/" target="_top">result set</a> with the given <code>view\_name</code>.
        <p> For details see <a href="/content/concepts/expressions/" target="_top">Expressions</a>. </p>
        <p> The response message contains the number of points for which the expression evaluated to be true, which is equivalent to the size of the result view. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_geo_json"><span className="type-signature" />get\_geo\_json<span className="signature">(table\_name, offset, limit, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Retrieves records from a given table as a GeoJSON, optionally filtered by an expression and/or sorted by a column. This operation can be performed on tables, views, or on homogeneous collections (collections containing tables of all the same type). Records can be returned encoded as binary, json or geojson.
        <p> This operation supports paging through the data via the <code>offset</code> and <code>limit</code> parameters. Note that when paging through a table, if the table (or the underlying table in case of a view) is updated (records are inserted, deleted or modified) the records retrieved may differ between calls based on the updates applied. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table from which the records will be fetched. Must be a table, view or homogeneous collection.</td>
          </tr>

          <tr>
            <td className="name"><code>offset</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the number of initial results to skip (this can be useful for paging through the results).</td>
          </tr>

          <tr>
            <td className="name"><code>limit</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the maximum number of results to be returned. Or END\_OF\_SET (-9999) to indicate that the max number of results should be returned.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              <ul>
                <li> 'expression': Optional filter expression to apply to the table. </li>

                <li>
                  'fast\_index\_lookup': Indicates if indexes should be used to perform the lookup for a given expression if possible. Only applicable if there is no sorting, the expression contains only equivalence comparisons based on existing tables indexes and the range of requested values is from \[0 to END\_OF\_SET]. Supported values:

                  <ul>
                    <li> 'true' </li>
                    <li> 'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li> 'sort\_by': Optional column that the data should be sorted by. Empty by default (i.e. no sorting is applied). </li>

                <li>
                  'sort\_order': String indicating how the returned values should be sorted - ascending or descending. If sort\_order is provided, sort\_by has to be provided. Supported values:

                  <ul>
                    <li> 'ascending' </li>
                    <li> 'descending' </li>
                  </ul>

                  The default value is 'ascending'.
                </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the GeoJSON object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_graph_entities"><span className="type-signature" />get\_graph\_entities<span className="signature">(graph\_name, offset, limit, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves node or edge entities from an existing graph, with pagination support via offset and limit. Use <a href="/content/api/nodejs/GPUdb#show_graph"><code>GPUdb#show\_graph</code></a> to obtain the total number of nodes and edges. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>graph\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the graph from which to retrieve entities.</td>
          </tr>

          <tr>
            <td className="name"><code>offset</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Starting index of the entities to retrieve (0-based). The default value is 0.</td>
          </tr>

          <tr>
            <td className="name"><code>limit</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Number of entities to retrieve starting from <code>offset</code>. A value of -1 returns all entities from the offset to the end. Note: the <code>entities\_int</code> or <code>entities\_string</code> array size will be 2x this value for nodes (stride 2) or 4x for edges (stride 4). The default value is 10000.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'entity\_type': The type of entity to retrieve. Supported values:

                  <ul>
                    <li>'edge': Retrieve edge entities (default). </li>
                    <li>'node': Retrieve node entities. </li>
                  </ul>

                  The default value is 'edge'.
                </li>

                <li>'server\_id': Indicates which graph server to send the request to. Required when the graph is distributed across multiple servers. The default value is '0'. </li>

                <li>
                  'concise\_edge\_connectivity': When true, edges are emitted in a compact connectivity form regardless of the graph's identifier type: <code>entities\_int</code> contains stride-4 records \[edge\_id, node1\_index, node2\_index, edge\_label\_index] where node1\_index/node2\_index are 0-based positions into the node array (obtained from a node-entity call on the same graph). When requesting nodes with this option, the response includes tombstoned (deleted) slots in order to keep position indices stable so edge indices resolve correctly; deleted slots carry id=0 for integer graphs or an empty identifier for string/WKT graphs. For paginated node calls, subtract <code>offset</code> from an edge endpoint index to locate it within the returned page. Supported values:

                  <ul>
                    <li>'true': Compact integer connectivity for edges; deleted node slots included in node output. </li>
                    <li>'false': Default: edges emit node identifiers (int/string/WKT) matching the graph; deleted nodes are skipped. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'include\_weights': When true and <code>options entity\_type</code> is 'edge', the response <code>entities\_weight</code> array is populated with one float weight per emitted edge (aligned 1:1 with the edge records in <code>entities\_int</code> or <code>entities\_string</code>). Empty when the graph has no weights component or when requesting nodes. Supported values:

                  <ul>
                    <li>'true': Populate <code>entities\_weight</code> with per-edge weights (edge requests only). </li>
                    <li>'false': Default: <code>entities\_weight</code> is empty. </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_graph_entities_request"><span className="type-signature" />get\_graph\_entities\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves node or edge entities from an existing graph, with pagination support via offset and limit. Use <a href="/content/api/nodejs/GPUdb#show_graph"><code>GPUdb#show\_graph</code></a> to obtain the total number of nodes and edges. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_http_headers"><span className="type-signature" />get\_http\_headers<span className="signature">()</span><span className="type-signature"> → {"{"}Object{"}"}</span></h4>
      <div className="description"> Returns an object containing all the custom headers used currently by the API. Returns a deep copy so that the user does not accidentally change the actual headers. Note that the API may use other headers as appropriate; the ones returned here are the custom ones set up by the user. </div>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> The object containing all the custom headers the user has set up so far. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Object</span> </div>
      </div>

      <h4 className="name" id="get_job"><span className="type-signature" />get\_job<span className="signature">(job\_id, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Get the status and result of asynchronously running job. See the <a href="/content/api/nodejs/GPUdb#create_job"><code>GPUdb#create\_job</code></a> for starting an asynchronous job. Some fields of the response are filled only after the submitted job has finished execution. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>job\_id</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A unique identifier for the job whose status and result is to be fetched.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'job\_tag': Job tag returned in call to create the job. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_job_request"><span className="type-signature" />get\_job\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Get the status and result of asynchronously running job. See the <a href="/content/api/nodejs/GPUdb#create_job"><code>GPUdb#create\_job</code></a> for starting an asynchronous job. Some fields of the response are filled only after the submitted job has finished execution. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_records"><span className="type-signature" />get\_records<span className="signature">(table\_name, offset, limit, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Retrieves records from a given table, optionally filtered by an expression and/or sorted by a column. This operation can be performed on tables and views. Records can be returned encoded as binary, json, or geojson.
        <p> This operation supports paging through the data via the <code>offset</code> and <code>limit</code> parameters. Note that when paging through a table, if the table (or the underlying table in case of a view) is updated (records are inserted, deleted or modified) the records retrieved may differ between calls based on the updates applied. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table or view from which the records will be fetched, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>offset</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the number of initial results to skip (this can be useful for paging through the results). The default value is 0. The minimum allowed value is 0. The maximum allowed value is MAX\_INT.</td>
          </tr>

          <tr>
            <td className="name"><code>limit</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the maximum number of results to be returned, or END\_OF\_SET (-9999) to indicate that the maximum number of results allowed by the server should be returned. The number of records returned will never exceed the server's own limit, defined by the <a href="/content/config/#config-main-general" target="_top">max\_get\_records\_size</a> parameter in the server configuration. Use <code>has\_more\_records</code> to see if more records exist in the result to be fetched, and <code>offset</code> and <code>limit</code> to request subsequent pages of results. The default value is -9999.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              <ul>
                <li>'expression': Filter expression to apply to the table. </li>

                <li>
                  'fast\_index\_lookup': Indicates if indexes should be used to perform the lookup for a given expression if possible. Only applicable if there is no sorting, the expression contains only equivalence comparisons based on existing tables indexes and the range of requested values is from \[0 to END\_OF\_SET]. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'sort\_by': Column that the data should be sorted by. Empty by default (i.e. no sorting is applied). </li>

                <li>
                  'sort\_order': String indicating how the returned values should be sorted - ascending or descending. If sort\_order is provided, sort\_by has to be provided. Supported values:

                  <ul>
                    <li>'ascending' </li>
                    <li>'descending' </li>
                  </ul>

                  The default value is 'ascending'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_records_by_column"><span className="type-signature" />get\_records\_by\_column<span className="signature">(table\_name, column\_names, offset, limit, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        For a given table, retrieves the values from the requested column(s). Maps of column name to the array of values as well as the column data type are returned. This endpoint supports pagination with the <code>offset</code> and <code>limit</code> parameters.
        <p> <a href="/content/concepts/window/" target="_top">Window functions</a>, which can perform operations like moving averages, are available through this endpoint as well as <a href="/content/api/nodejs/GPUdb#create_projection"><code>GPUdb#create\_projection</code></a>. </p>
        <p> When using pagination, if the table (or the underlying table in the case of a view) is modified (records are inserted, updated, or deleted) during a call to the endpoint, the records or values retrieved may differ between calls based on the type of the update, e.g., the contiguity across pages cannot be relied upon. </p>
        <p> If <code>table\_name</code> is empty, selection is performed against a single-row virtual table. This can be useful in executing temporal (<a href="/content/concepts/expressions/#date-time-functions" target="_top">NOW()</a>), identity (<a href="/content/concepts/expressions/#user-security-functions" target="_top">USER()</a>), or constant-based functions (<a href="/content/concepts/expressions/#scalar-functions" target="_top">GEODIST(-77.11, 38.88, -71.06, 42.36)</a>). </p>
        <p> The response is returned as a dynamic schema. For details see: <a href="/content/api/concepts/#dynamic-schemas" target="_top">dynamic schemas documentation</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table or view on which this operation will be performed, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. An empty table name retrieves one record from a single-row virtual table, where columns specified should be constants or constant expressions.</td>
          </tr>

          <tr>
            <td className="name"><code>column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">The list of column values to retrieve.</td>
          </tr>

          <tr>
            <td className="name"><code>offset</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the number of initial results to skip (this can be useful for paging through the results). The default value is 0. The minimum allowed value is 0. The maximum allowed value is MAX\_INT.</td>
          </tr>

          <tr>
            <td className="name"><code>limit</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the maximum number of results to be returned, or END\_OF\_SET (-9999) to indicate that the maximum number of results allowed by the server should be returned. The number of records returned will never exceed the server's own limit, defined by the <a href="/content/config/#config-main-general" target="_top">max\_get\_records\_size</a> parameter in the server configuration. Use <code>has\_more\_records</code> to see if more records exist in the result to be fetched, and <code>offset</code> and <code>limit</code> to request subsequent pages of results. The default value is -9999.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              <ul>
                <li>'expression': Filter expression to apply to the table. </li>
                <li>'sort\_by': Column that the data should be sorted by. Used in conjunction with <code>sort\_order</code>. The <code>order\_by</code> option can be used in lieu of <code>sort\_by</code> / <code>sort\_order</code>. The default value is ''. </li>

                <li>
                  'sort\_order': String indicating how the returned values should be sorted - <code>ascending</code> or <code>descending</code>. If <code>sort\_order</code> is provided, <code>sort\_by</code> has to be provided. Supported values:

                  <ul>
                    <li>'ascending' </li>
                    <li>'descending' </li>
                  </ul>

                  The default value is 'ascending'.
                </li>

                <li>'order\_by': Comma-separated list of the columns to be sorted by as well as the sort direction, e.g., 'timestamp asc, x desc'. The default value is ''. </li>

                <li>
                  'convert\_wkts\_to\_wkbs': If <code>true</code>, then WKT string columns will be returned as WKB bytes. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'route\_to\_tom': For multihead record retrieval without shard key expression - specifies from which tom to retrieve data. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_records_by_column_request"><span className="type-signature" />get\_records\_by\_column\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        For a given table, retrieves the values from the requested column(s). Maps of column name to the array of values as well as the column data type are returned. This endpoint supports pagination with the <code>offset</code> and <code>limit</code> parameters.
        <p> <a href="/content/concepts/window/" target="_top">Window functions</a>, which can perform operations like moving averages, are available through this endpoint as well as <a href="/content/api/nodejs/GPUdb#create_projection"><code>GPUdb#create\_projection</code></a>. </p>
        <p> When using pagination, if the table (or the underlying table in the case of a view) is modified (records are inserted, updated, or deleted) during a call to the endpoint, the records or values retrieved may differ between calls based on the type of the update, e.g., the contiguity across pages cannot be relied upon. </p>
        <p> If <code>table\_name</code> is empty, selection is performed against a single-row virtual table. This can be useful in executing temporal (<a href="/content/concepts/expressions/#date-time-functions" target="_top">NOW()</a>), identity (<a href="/content/concepts/expressions/#user-security-functions" target="_top">USER()</a>), or constant-based functions (<a href="/content/concepts/expressions/#scalar-functions" target="_top">GEODIST(-77.11, 38.88, -71.06, 42.36)</a>). </p>
        <p> The response is returned as a dynamic schema. For details see: <a href="/content/api/concepts/#dynamic-schemas" target="_top">dynamic schemas documentation</a>. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_records_by_series"><span className="type-signature" />get\_records\_by\_series<span className="signature">(table\_name, world\_table\_name, offset, limit, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Retrieves the complete series/track records from the given <code>world\_table\_name</code> based on the partial track information contained in the <code>table\_name</code>.
        <p> This operation supports paging through the data via the <code>offset</code> and <code>limit</code> parameters. </p>
        <p> In contrast to <a href="/content/api/nodejs/GPUdb#get_records"><code>GPUdb#get\_records</code></a> this returns records grouped by series/track. So if <code>offset</code> is 0 and <code>limit</code> is 5 this operation would return the first 5 series/tracks in <code>table\_name</code>. Each series/track will be returned sorted by their TIMESTAMP column. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table or view for which series/tracks will be fetched, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>world\_table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table containing the complete series/track information to be returned for the tracks present in the <code>table\_name</code>, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Typically this is used when retrieving series/tracks from a view (which contains partial series/tracks) but the user wants to retrieve the entire original series/tracks. Can be blank.</td>
          </tr>

          <tr>
            <td className="name"><code>offset</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the number of initial series/tracks to skip (useful for paging through the results). The default value is 0. The minimum allowed value is 0. The maximum allowed value is MAX\_INT.</td>
          </tr>

          <tr>
            <td className="name"><code>limit</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the maximum number of series/tracks to be returned. Or END\_OF\_SET (-9999) to indicate that the max number of results should be returned. The default value is 250.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_records_by_series_request"><span className="type-signature" />get\_records\_by\_series\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Retrieves the complete series/track records from the given <code>world\_table\_name</code> based on the partial track information contained in the <code>table\_name</code>.
        <p> This operation supports paging through the data via the <code>offset</code> and <code>limit</code> parameters. </p>
        <p> In contrast to <a href="/content/api/nodejs/GPUdb#get_records"><code>GPUdb#get\_records</code></a> this returns records grouped by series/track. So if <code>offset</code> is 0 and <code>limit</code> is 5 this operation would return the first 5 series/tracks in <code>table\_name</code>. Each series/track will be returned sorted by their TIMESTAMP column. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_records_from_collection"><span className="type-signature" />get\_records\_from\_collection<span className="signature">(table\_name, offset, limit, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Retrieves records from a collection. The operation can optionally return the record IDs which can be used in certain queries such as <a href="/content/api/nodejs/GPUdb#delete_records"><code>GPUdb#delete\_records</code></a>.
        <p> This operation supports paging through the data via the <code>offset</code> and <code>limit</code> parameters. </p>
        <p> Note that when using the Java API, it is not possible to retrieve records from join views using this operation. (DEPRECATED) </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the collection or table from which records are to be retrieved, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing collection or table.</td>
          </tr>

          <tr>
            <td className="name"><code>offset</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the number of initial results to skip (this can be useful for paging through the results). The default value is 0. The minimum allowed value is 0. The maximum allowed value is MAX\_INT.</td>
          </tr>

          <tr>
            <td className="name"><code>limit</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">A positive integer indicating the maximum number of results to be returned, or END\_OF\_SET (-9999) to indicate that the maximum number of results allowed by the server should be returned. The number of records returned will never exceed the server's own limit, defined by the <a href="/content/config/#config-main-general" target="_top">max\_get\_records\_size</a> parameter in the server configuration. Use <code>offset</code> and <code>limit</code> to request subsequent pages of results. The default value is -9999.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              <ul>
                <li>
                  'return\_record\_ids': If <code>true</code> then return the internal record ID along with each returned record. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'expression': Filter expression to apply to the table. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_records_from_collection_request"><span className="type-signature" />get\_records\_from\_collection\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Retrieves records from a collection. The operation can optionally return the record IDs which can be used in certain queries such as <a href="/content/api/nodejs/GPUdb#delete_records"><code>GPUdb#delete\_records</code></a>.
        <p> This operation supports paging through the data via the <code>offset</code> and <code>limit</code> parameters. </p>
        <p> Note that when using the Java API, it is not possible to retrieve records from join views using this operation. (DEPRECATED) </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="get_records_json"><span className="type-signature" />get\_records\_json<span className="signature">(table\_name, column\_names, offset, limit, expression, orderby\_columns, having\_clause, callback)</span><span className="type-signature" /></h4>
      <div className="description"> This method is used to retrieve records from a Kinetica table in the form of a JSON array (stringified). The only mandatory parameter is the 'tableName'. The rest are all optional with suitable defaults wherever applicable. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">string</span> </td>

            <td className="description last" />
          </tr>

          <tr>
            <td className="name"><code>column\_names</code></td>
            <td className="type"> <span className="param-type">array</span> </td>

            <td className="description last" />
          </tr>

          <tr>
            <td className="name"><code>offset</code></td>
            <td className="type"> <span className="param-type">int</span> </td>

            <td className="description last" />
          </tr>

          <tr>
            <td className="name"><code>limit</code></td>
            <td className="type"> <span className="param-type">int</span> </td>

            <td className="description last" />
          </tr>

          <tr>
            <td className="name"><code>expression</code></td>
            <td className="type"> <span className="param-type">string</span> </td>

            <td className="description last" />
          </tr>

          <tr>
            <td className="name"><code>orderby\_columns</code></td>
            <td className="type"> <span className="param-type">array</span> </td>

            <td className="description last" />
          </tr>

          <tr>
            <td className="name"><code>having\_clause</code></td>
            <td className="type"> <span className="param-type">string</span> </td>

            <td className="description last" />
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type">object</span> </td>

            <td className="description last" />
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="get_records_request"><span className="type-signature" />get\_records\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Retrieves records from a given table, optionally filtered by an expression and/or sorted by a column. This operation can be performed on tables and views. Records can be returned encoded as binary, json, or geojson.
        <p> This operation supports paging through the data via the <code>offset</code> and <code>limit</code> parameters. Note that when paging through a table, if the table (or the underlying table in case of a view) is updated (records are inserted, deleted or modified) the records retrieved may differ between calls based on the updates applied. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission"><span className="type-signature" />grant\_permission<span className="signature">(principal, object, object\_type, permission, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grant user or role the specified permission on the specified object. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>principal</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role for which the permission is being granted. Must be an existing user or role. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>object</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of object permission is being granted to. It is recommended to use a fully-qualified name when possible.</td>
          </tr>

          <tr>
            <td className="name"><code>object\_type</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              The type of object being granted to. Supported values:

              <ul>
                <li>'catalog': Catalog </li>
                <li>'context': Context </li>
                <li>'credential': Credential </li>
                <li>'datasink': Data Sink </li>
                <li>'datasource': Data Source </li>
                <li>'directory': KIFS File Directory </li>
                <li>'graph': A Graph object </li>
                <li>'proc': UDF Procedure </li>
                <li>'schema': Schema </li>
                <li>'sql\_proc': SQL Procedure </li>
                <li>'system': System-level access </li>
                <li>'table': Database Table </li>
                <li>'table\_monitor': Table monitor </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission being granted. Supported values:

              <ul>
                <li>'admin': Full read/write and administrative access on the object. </li>
                <li>'connect': Connect access on the given data source or data sink. </li>
                <li>'create': Ability to create new objects of this type. </li>
                <li>'delete': Delete rows from tables. </li>
                <li>'execute': Ability to Execute the Procedure object. </li>
                <li>'insert': Insert access to tables. </li>
                <li>'monitor': Monitor logs and statistics. </li>
                <li>'read': Ability to read, list and use the object. </li>
                <li>'send\_alert': Ability to send system alerts. </li>
                <li>'update': Update access to the table. </li>
                <li>'user\_admin': Access to administer users and roles that do not have system\_admin permission. </li>
                <li>'write': Access to write, change and delete objects. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'columns': Apply table security to these columns, comma-separated. The default value is ''. </li>
                <li>'filter\_expression': Filter expression to apply to this grant. Only rows that match the filter will be affected. The default value is ''. </li>

                <li>
                  'with\_grant\_option': Allow the recipient to grant the same permission (or subset) to others. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_credential"><span className="type-signature" />grant\_permission\_credential<span className="signature">(name, permission, credential\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a <a href="/content/security/sec_concepts/#security-concepts-permissions-credential" target="_top">credential-level permission</a> to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role to which the permission will be granted. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to grant to the user or role. Supported values:

              <ul>
                <li>'credential\_admin': Full read/write and administrative access on the credential. </li>
                <li>'credential\_read': Ability to read and use the credential. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>credential\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the credential on which the permission will be granted. Must be an existing credential, or an empty string to grant access on all credentials.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_credential_request"><span className="type-signature" />grant\_permission\_credential\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a <a href="/content/security/sec_concepts/#security-concepts-permissions-credential" target="_top">credential-level permission</a> to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_datasource"><span className="type-signature" />grant\_permission\_datasource<span className="signature">(name, permission, datasource\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a <a href="/content/concepts/data_sources/" target="_top">data source</a> permission to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role to which the permission will be granted. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to grant to the user or role. Supported values:

              <ul>
                <li>'admin': Admin access on the given data source. </li>
                <li>'connect': Connect access on the given data source. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>datasource\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the data source on which the permission will be granted. Must be an existing data source, or an empty string to grant permission on all data sources.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_datasource_request"><span className="type-signature" />grant\_permission\_datasource\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a <a href="/content/concepts/data_sources/" target="_top">data source</a> permission to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_directory"><span className="type-signature" />grant\_permission\_directory<span className="signature">(name, permission, directory\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a <a href="/content/tools/kifs/" target="_top">KiFS</a> directory-level permission to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role to which the permission will be granted. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to grant to the user or role. Supported values:

              <ul>
                <li>'directory\_read': For files in the directory, access to list files, download files, or use files in server side functions. </li>
                <li>'directory\_write': Access to upload files to, or delete files from, the directory. A user or role with write access automatically has read access. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>directory\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the KiFS directory to which the permission grants access. An empty directory name grants access to all KiFS directories.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_directory_request"><span className="type-signature" />grant\_permission\_directory\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a <a href="/content/tools/kifs/" target="_top">KiFS</a> directory-level permission to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_proc"><span className="type-signature" />grant\_permission\_proc<span className="signature">(name, permission, proc\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a proc-level permission to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role to which the permission will be granted. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to grant to the user or role. Supported values:

              <ul>
                <li>'proc\_admin': Admin access to the proc. </li>
                <li>'proc\_execute': Execute access to the proc. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>proc\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the proc to which the permission grants access. Must be an existing proc, or an empty string to grant access to all procs.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_proc_request"><span className="type-signature" />grant\_permission\_proc\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a proc-level permission to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_request"><span className="type-signature" />grant\_permission\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grant user or role the specified permission on the specified object. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_system"><span className="type-signature" />grant\_permission\_system<span className="signature">(name, permission, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a system-level permission to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role to which the permission will be granted. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to grant to the user or role. Supported values:

              <ul>
                <li>'system\_admin': Full access to all data and system functions. </li>
                <li>'system\_user\_admin': Access to administer users and roles that do not have system\_admin permission. </li>
                <li>'system\_write': Read and write access to all tables. </li>
                <li>'system\_read': Read-only access to all tables. </li>
                <li>'system\_send\_alert': Send system alerts. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_system_request"><span className="type-signature" />grant\_permission\_system\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a system-level permission to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_table"><span className="type-signature" />grant\_permission\_table<span className="signature">(name, permission, table\_name, filter\_expression, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a table-level permission to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role to which the permission will be granted. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to grant to the user or role. Supported values:

              <ul>
                <li>'table\_admin': Full read/write and administrative access to the table. </li>
                <li>'table\_insert': Insert access to the table. </li>
                <li>'table\_update': Update access to the table. </li>
                <li>'table\_delete': Delete access to the table. </li>
                <li>'table\_read': Read access to the table. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to which the permission grants access, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table, view, or schema. If a schema, the permission also applies to tables and views in the schema.</td>
          </tr>

          <tr>
            <td className="name"><code>filter\_expression</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Optional filter expression to apply to this grant. Only rows that match the filter will be affected. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'columns': Apply security to these columns, comma-separated. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_permission_table_request"><span className="type-signature" />grant\_permission\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants a table-level permission to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_role"><span className="type-signature" />grant\_role<span className="signature">(role, member, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants membership in a role to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>role</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the role in which membership will be granted. Must be an existing role.</td>
          </tr>

          <tr>
            <td className="name"><code>member</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role that will be granted membership in <code>role</code>. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="grant_role_request"><span className="type-signature" />grant\_role\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Grants membership in a role to a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_permission"><span className="type-signature" />has\_permission<span className="signature">(principal, object, object\_type, permission, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Checks if the specified user has the specified permission on the specified object. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>principal</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user for which the permission is being checked. Must be an existing user. If blank, will use the current user. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>object</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of object to check for the requested permission. It is recommended to use a fully-qualified name when possible.</td>
          </tr>

          <tr>
            <td className="name"><code>object\_type</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              The type of object being checked. Supported values:

              <ul>
                <li>'catalog': External Catalog </li>
                <li>'context': Context </li>
                <li>'credential': Credential </li>
                <li>'datasink': Data Sink </li>
                <li>'datasource': Data Source </li>
                <li>'directory': KiFS File Directory </li>
                <li>'graph': A Graph object </li>
                <li>'proc': UDF Procedure </li>
                <li>'schema': Schema </li>
                <li>'sql\_proc': SQL Procedure </li>
                <li>'system': System-level access </li>
                <li>'table': Database Table </li>
                <li>'table\_monitor': Table monitor </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to check for. Supported values:

              <ul>
                <li>'admin': Full read/write and administrative access on the object. </li>
                <li>'connect': Connect access on the given data source or data sink. </li>
                <li>'create': Ability to create new objects of this type. </li>
                <li>'delete': Delete rows from tables. </li>
                <li>'execute': Ability to Execute the Procedure object. </li>
                <li>'insert': Insert access to tables. </li>
                <li>'monitor': Monitor logs and statistics. </li>
                <li>'read': Ability to read, list and use the object. </li>
                <li>'send\_alert': Ability to send system alerts. </li>
                <li>'update': Update access to the table. </li>
                <li>'user\_admin': Access to administer users and roles that do not have system\_admin permission. </li>
                <li>'write': Access to write, change and delete objects. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_not\_exists': If <code>false</code> will return an error if the provided <code>object</code> does not exist or is blank. If <code>true</code> then it will return <code>false</code> for <code>has\_permission</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_permission_request"><span className="type-signature" />has\_permission\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Checks if the specified user has the specified permission on the specified object. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_proc"><span className="type-signature" />has\_proc<span className="signature">(proc\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Checks the existence of a proc with the given name. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>proc\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the proc to check for existence.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_proc_request"><span className="type-signature" />has\_proc\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Checks the existence of a proc with the given name. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_role"><span className="type-signature" />has\_role<span className="signature">(principal, role, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Checks if the specified user has the specified role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>principal</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user for which role membership is being checked. Must be an existing user. If blank, will use the current user. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>role</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of role to check for membership.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_not\_exists': If <code>false</code> will return an error if the provided <code>role</code> does not exist or is blank. If <code>true</code> then it will return <code>false</code> for <code>has\_role</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'only\_direct': If <code>false</code> will search recursively if the <code>principal</code> is a member of <code>role</code>. If <code>true</code> then <code>principal</code> must directly be a member of <code>role</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_role_request"><span className="type-signature" />has\_role\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Checks if the specified user has the specified role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_schema"><span className="type-signature" />has\_schema<span className="signature">(schema\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Checks for the existence of a schema with the given name. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>schema\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the schema to check for existence, in root, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_schema_request"><span className="type-signature" />has\_schema\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Checks for the existence of a schema with the given name. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_table"><span className="type-signature" />has\_table<span className="signature">(table\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Checks for the existence of a table with the given name. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to check for existence, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_table_request"><span className="type-signature" />has\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Checks for the existence of a table with the given name. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_type"><span className="type-signature" />has\_type<span className="signature">(type\_id, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Check for the existence of a type. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>type\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Id of the type returned in response to <a href="/content/api/nodejs/GPUdb#create_type"><code>GPUdb#create\_type</code></a> request.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="has_type_request"><span className="type-signature" />has\_type\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Check for the existence of a type. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_records"><span className="type-signature" />insert\_records<span className="signature">(table\_name, data, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Adds multiple records to the specified table. The operation is synchronous, meaning that a response will not be returned until all the records are fully inserted and available. The response payload provides the counts of the number of records actually inserted and/or updated, and can provide the unique identifier of each added record.
        <p> The <code>options</code> parameter can be used to customize this function's behavior. </p>
        <p> The <code>update\_on\_existing\_pk</code> option specifies the record collision policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, but is ignored if no primary key exists. </p>
        <p> The <code>return\_record\_ids</code> option indicates that the database should return the unique identifiers of inserted records. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of table to which the records are to be added, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table.</td>
          </tr>

          <tr>
            <td className="name"><code>data</code></td>
            <td className="type"> <span className="param-type">Array.\<Object></span> </td>
            <td className="description last">An array of JSON encoded data for the records to be added. All records must be of the same type as that of the table. Empty array if <code>list\_encoding</code> is <code>binary</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'update\_on\_existing\_pk': Specifies the record collision policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>. If set to <code>true</code>, any existing table record with primary key values that match those of a record being inserted will be replaced by that new record (the new data will be "upserted"). If set to <code>false</code>, any existing table record with primary key values that match those of a record being inserted will remain unchanged, while the new record will be rejected and the error handled as determined by <code>ignore\_existing\_pk</code>, <code>allow\_partial\_batch</code>, and <code>return\_individual\_errors</code>. If the specified table does not have a primary key, then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Upsert new records when primary keys match existing records. </li>
                    <li>'false': Reject new records when primary keys match existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'enable\_inplace\_updates': Applies only when upserting (when <code>update\_on\_existing\_pk</code> is <code>true</code>). If set to <code>true</code>, an existing record matched by primary key is modified in place. If set to <code>false</code>, it is 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>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'ignore\_existing\_pk': Specifies the record collision error-suppression policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, only used when not in upsert mode (upsert mode is disabled when <code>update\_on\_existing\_pk</code> is <code>false</code>). If set to <code>true</code>, any record being inserted that is rejected for having primary key values that match those of an existing table record will be ignored with no error generated. If <code>false</code>, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined by <code>allow\_partial\_batch</code> and <code>return\_individual\_errors</code>. If the specified table does not have a primary key or if upsert mode is in effect (<code>update\_on\_existing\_pk</code> is <code>true</code>), then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Ignore new records whose primary key values collide with those of existing records. </li>
                    <li>'false': Treat as errors any new records whose primary key values collide with those of existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'pk\_conflict\_predicate\_higher': The record with higher value for the column resolves the primary-key insert conflict. The default value is ''. </li>
                <li>'pk\_conflict\_predicate\_lower': The record with lower value for the column resolves the primary-key insert conflict. The default value is ''. </li>

                <li>
                  'return\_record\_ids': If <code>true</code> then return the internal record id along for each inserted record. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'truncate\_strings': If set to <code>true</code>, any strings which are too long for their target charN string columns will be truncated to fit. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'return\_individual\_errors': If set to <code>true</code>, success will always be returned, and any errors found will be included in the info map. The "bad\_record\_indices" entry is a comma-separated list of bad records (0-based). If so, there will also be an "error\_N" entry for each record with an error, where N is the index (0-based). Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'allow\_partial\_batch': If set to <code>true</code>, all correct records will be inserted and incorrect records will be rejected and reported. Otherwise, the entire batch will be rejected if any records are incorrect. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'dry\_run': If set to <code>true</code>, no data will be saved and any errors will be returned. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'request\_schema\_str': Type schema of <code>list</code> (when <code>list\_encoding</code> is <code>binary</code>), in \[\["{"{"}column\_name{"}"}","{"{"}column\_type{"}"}"]] format. When non-empty and different from the table's schema, the server remaps the incoming records to the table's full schema. Columns present in the table but absent from this schema are filled using their default values, NULL (if nullable), or an error is returned. If empty, records must match the table's full schema. The default value is ''. </li>
                <li>'transformations': Comma-separated expressions, one per target table column. Each expression is evaluated per record. Empty entries (two consecutive commas) mean no transformation for that column -- the value is resolved from the input record, table default, NULL, or an error. Expressions may reference input columns by name or by position ($1 for the first input column, $2 for the second, etc.). The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_records_from_files"><span className="type-signature" />insert\_records\_from\_files<span className="signature">(table\_name, filepaths, modify\_columns, create\_table\_options, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Reads from one or more files and inserts the data into a new or existing table. The source data can be located either in <a href="/content/tools/kifs/" target="_top">KiFS</a>; on the cluster, accessible to the database; or remotely, accessible via a pre-defined external <a href="/content/concepts/data_sources/" target="_top">data source</a>.

        <p />

        <p> For delimited text files, there are two loading schemes: positional and name-based. The name-based loading scheme is enabled when the file has a header present and <code>text\_has\_header</code> is set to <code>true</code>. In this scheme, the source file(s) field names must match the target table's column names exactly; however, the source file can have more fields than the target table has columns. If <code>error\_handling</code> is set to <code>permissive</code>, the source file can have fewer fields than the target table has columns. If the name-based loading scheme is being used, names matching the file header's names may be provided to <code>columns\_to\_load</code> instead of numbers, but ranges are not supported. </p>
        <p> Note: Due to data being loaded in parallel, there is no insertion order guaranteed. For tables with primary keys, in the case of a primary key collision, this means it is indeterminate which record will be inserted first and remain, while the rest of the colliding key records are discarded. </p>
        <p> Returns once all files are processed. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table into which the data will be inserted, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. If the table does not exist, the table will be created using either an existing <code>type\_id</code> or the type inferred from the file, and the new table name will have to meet standard <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>filepaths</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">A list of file paths from which data will be sourced; For paths in <a href="/content/tools/kifs/" target="_top">KiFS</a>, use the URI prefix of kifs\:// followed by the path to a file or directory. File matching by prefix is supported, e.g. kifs\://dir/file would match dir/file\_1 and dir/file\_2. When prefix matching is used, the path must start with a full, valid KiFS directory name. If an external data source is specified in <code>datasource\_name</code>, these file paths must resolve to accessible files at that data source location. Prefix matching is supported. If the data source is hdfs, prefixes must be aligned with directories, i.e. partial file names will not match. If no data source is specified, the files are assumed to be local to the database and must all be accessible to the gpudb user, residing on the path (or relative to the path) specified by the external files directory in the Kinetica <a href="/content/config/#config-main-external-files" target="_top">configuration file</a>. Wildcards (\*) can be used to specify a group of files. Prefix matching is supported, the prefixes must be aligned with directories. If the first path ends in .tsv, the text delimiter will be defaulted to a tab character. If the first path ends in .psv, the text delimiter will be defaulted to a pipe character (|).</td>
          </tr>

          <tr>
            <td className="name"><code>modify\_columns</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Not implemented yet. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>create\_table\_options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Options from <a href="/content/api/nodejs/GPUdb#create_table"><code>GPUdb#create\_table</code></a>, allowing the structure of the table to be defined independently of the data source, when creating the target table.

              <ul>
                <li>'type\_id': ID of a currently registered <a href="/content/concepts/types/" target="_top">type</a>. </li>

                <li>
                  'no\_error\_if\_exists': If <code>true</code>, prevents an error from occurring if the table already exists and is of the given type. If a table with the same name but a different type exists, it is still an error. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'is\_replicated': Affects the <a href="/content/concepts/tables/#distribution" target="_top">distribution scheme</a> for the table's data. If <code>true</code> and the given table has no explicit <a href="/content/concepts/tables/#shard-key" target="_top">shard key</a> defined, the table will be <a href="/content/concepts/tables/#replication" target="_top">replicated</a>. If <code>false</code>, the table will be <a href="/content/concepts/tables/#sharding" target="_top">sharded</a> according to the shard key specified in the given <code>type\_id</code>, or <a href="/content/concepts/tables/#random-sharding" target="_top">randomly sharded</a>, if no shard key is specified. Note that a type containing a shard key cannot be used to create a replicated table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'foreign\_keys': Semicolon-separated list of <a href="/content/concepts/tables/#foreign-keys" target="_top">foreign keys</a>, of the format '(source\_column\_name \[, ...]) references target\_table\_name(primary\_key\_column\_name \[, ...]) \[as foreign\_key\_name]'. </li>
                <li>'foreign\_shard\_key': Foreign shard key of the format 'source\_column references shard\_by\_column from target\_table(primary\_key\_column)'. </li>

                <li>
                  'partition\_type': <a href="/content/concepts/tables/#partitioning" target="_top">Partitioning</a> scheme to use. Supported values:

                  <ul>
                    <li>'RANGE': Use <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>. </li>
                    <li>'INTERVAL': Use <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>. </li>
                    <li>'LIST': Use <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>. </li>
                    <li>'HASH': Use <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>. </li>
                    <li>'SERIES': Use <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a>. </li>
                  </ul>
                </li>

                <li>'partition\_keys': Comma-separated list of partition keys, which are the columns or column expressions by which records will be assigned to partitions defined by <code>partition\_definitions</code>. </li>
                <li>'partition\_definitions': Comma-separated list of partition definitions, whose format depends on the choice of <code>partition\_type</code>. See <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>, or <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a> for example formats. </li>

                <li>
                  'is\_automatic\_partition': If <code>true</code>, a new partition will be created for values which don't fall into an existing partition. Currently, only supported for <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitions</a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the table specified in <code>table\_name</code>. </li>
                <li>'chunk\_size': Indicates the number of records per chunk to be used for this table. </li>
                <li>'chunk\_column\_max\_memory': Indicates the target maximum data size for each column in a chunk to be used for this table. </li>
                <li>'chunk\_max\_memory': Indicates the target maximum data size for all columns in a chunk to be used for this table. </li>

                <li>
                  'is\_result\_table': Indicates whether the table is a <a href="/content/concepts/tables_memory_only/" target="_top">memory-only table</a>. A result table cannot contain columns with text\_search <a href="/content/concepts/types/#data-handling" target="_top">data-handling</a>, and it will not be retained if the server is restarted. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'strategy\_definition': The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression codec</a> for this table's columns. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'bad\_record\_table\_name': Name of a table to which records that were rejected are written. The bad-record-table has the following columns: line\_number (long), line\_rejected (string), error\_message (string). When <code>error\_handling</code> is <code>abort</code>, bad records table is not populated. </li>
                <li>'bad\_record\_table\_limit': A positive integer indicating the maximum number of records that can be written to the bad-record-table. The default value is '10000'. </li>
                <li>'bad\_record\_table\_limit\_per\_input': For subscriptions, a positive integer indicating the maximum number of records that can be written to the bad-record-table per file/payload. Default value will be <code>bad\_record\_table\_limit</code> and total size of the table per rank is limited to <code>bad\_record\_table\_limit</code>. </li>
                <li>'batch\_size': Number of records to insert per batch when inserting data. The default value is '50000'. </li>
                <li>'column\_formats': For each target column specified, applies the column-property-bound format to the source data loaded into that column. Each column format will contain a mapping of one or more of its column properties to an appropriate format for each property. Currently supported column properties include date, time, and datetime. The parameter value must be formatted as a JSON string of maps of column names to maps of column properties to their corresponding column formats, e.g., '{"{"} "order\_date" : {"{"} "date" : "%Y.%m.%d" {"}"}, "order\_time" : {"{"} "time" : "%H:%M:%S" {"}"} {"}"}'. See <code>default\_column\_formats</code> for valid format syntax. </li>
                <li>'columns\_to\_load': Specifies a comma-delimited list of columns from the source data to load. If more than one file is being loaded, this list applies to all files. Column numbers can be specified discretely or as a range. For example, a value of '5,7,1..3' will insert values from the fifth column in the source data into the first column in the target table, from the seventh column in the source data into the second column in the target table, and from the first through third columns in the source data into the third through fifth columns in the target table. If the source data contains a header, column names matching the file header names may be provided instead of column numbers. If the target table doesn't exist, the table will be created with the columns in this order. If the target table does exist with columns in a different order than the source data, this list can be used to match the order of the target table. For example, a value of 'C, B, A' will create a three column table with column C, followed by column B, followed by column A; or will insert those fields in that order into a table created with columns in that order. If the target table exists, the column names must match the source data field names for a name-mapping to be successful. Mutually exclusive with <code>columns\_to\_skip</code>. </li>
                <li>'columns\_to\_skip': Specifies a comma-delimited list of columns from the source data to skip. Mutually exclusive with <code>columns\_to\_load</code>. </li>

                <li>
                  'compression\_type': Source data compression type. Supported values:

                  <ul>
                    <li>'none': No compression. </li>
                    <li>'auto': Auto detect compression type. </li>
                    <li>'gzip': gzip file compression. </li>
                    <li>'bzip2': bzip2 file compression. </li>
                  </ul>

                  The default value is 'auto'.
                </li>

                <li>'datasource\_name': Name of an existing external data source from which data file(s) specified in <code>filepaths</code> will be loaded. </li>
                <li>'default\_column\_formats': Specifies the default format to be applied to source data loaded into columns with the corresponding column property. Currently supported column properties include date, time, and datetime. This default column-property-bound format can be overridden by specifying a column property and format for a given target column in <code>column\_formats</code>. For each specified annotation, the format will apply to all columns with that annotation unless a custom <code>column\_formats</code> for that annotation is specified. The parameter value must be formatted as a JSON string that is a map of column properties to their respective column formats, e.g., '{"{"} "date" : "%Y.%m.%d", "time" : "%H:%M:%S" {"}"}'. Column formats are specified as a string of control characters and plain text. The supported control characters are 'Y', 'm', 'd', 'H', 'M', 'S', and 's', which follow the Linux 'strptime()' specification, as well as 's', which specifies seconds and fractional seconds (though the fractional component will be truncated past milliseconds). Formats for the 'date' annotation must include the 'Y', 'm', and 'd' control characters. Formats for the 'time' annotation must include the 'H', 'M', and either 'S' or 's' (but not both) control characters. Formats for the 'datetime' annotation meet both the 'date' and 'time' control character requirements. For example, '{"{"}"datetime" : "%m/%d/%Y %H:%M:%S" {"}"}' would be used to interpret text as "05/04/2000 12:12:11" </li>

                <li>
                  'error\_handling': Specifies how errors should be handled upon insertion. Supported values:

                  <ul>
                    <li>'permissive': Records with missing columns are populated with nulls if possible; otherwise, the malformed records are skipped. </li>
                    <li>'ignore\_bad\_records': Malformed records are skipped. </li>
                    <li>'abort': Stops current insertion and aborts entire operation when an error is encountered. Primary key collisions are considered abortable errors in this mode. </li>
                  </ul>

                  The default value is 'abort'.
                </li>

                <li>
                  'file\_type': Specifies the type of the file(s) whose records will be inserted. Supported values:

                  <ul>
                    <li>'avro': Avro file format. </li>
                    <li>'delimited\_text': Delimited text file format; e.g., CSV, TSV, PSV, etc. </li>
                    <li>'gdb': Esri/GDB file format. </li>
                    <li>'json': JSON file format. </li>
                    <li>'parquet': Apache Parquet file format. </li>
                    <li>'shapefile': ShapeFile file format. </li>
                  </ul>

                  The default value is 'delimited\_text'.
                </li>

                <li>
                  'flatten\_columns': Specifies how to handle nested columns. Supported values:

                  <ul>
                    <li>'true': Break up nested columns to multiple columns. </li>
                    <li>'false': Treat nested columns as JSON columns instead of flattening. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'gdal\_configuration\_options': Comma separated list of gdal conf options, for the specific requests: key=value. </li>

                <li>
                  'ignore\_existing\_pk': Specifies the record collision error-suppression policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, only used when not in upsert mode (upsert mode is disabled when <code>update\_on\_existing\_pk</code> is <code>false</code>). If set to <code>true</code>, any record being inserted that is rejected for having primary key values that match those of an existing table record will be ignored with no error generated. If <code>false</code>, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined by <code>error\_handling</code>. If the specified table does not have a primary key or if upsert mode is in effect (<code>update\_on\_existing\_pk</code> is <code>true</code>), then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Ignore new records whose primary key values collide with those of existing records. </li>
                    <li>'false': Treat as errors any new records whose primary key values collide with those of existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'ingestion\_mode': Whether to do a full load, dry run, or perform a type inference on the source data. Supported values:

                  <ul>
                    <li>'full': Run a type inference on the source data (if needed) and ingest. </li>
                    <li>'dry\_run': Does not load data, but walks through the source data and determines the number of valid records, taking into account the current mode of <code>error\_handling</code>. </li>
                    <li>'type\_inference\_only': Infer the type of the source data and return, without ingesting any data. The inferred type is returned in the response. </li>
                  </ul>

                  The default value is 'full'.
                </li>

                <li>'kafka\_consumers\_per\_rank': Number of Kafka consumer threads per rank (valid range 1-6). The default value is '1'. </li>
                <li>'kafka\_group\_id': The group id to be used when consuming data from a Kafka topic (valid only for Kafka datasource subscriptions). </li>

                <li>
                  'kafka\_offset\_reset\_policy': Policy to determine whether the Kafka data consumption starts either at earliest offset or latest offset. Supported values:

                  <ul>
                    <li>'earliest' </li>
                    <li>'latest' </li>
                  </ul>

                  The default value is 'earliest'.
                </li>

                <li>
                  'kafka\_optimistic\_ingest': Enable optimistic ingestion where Kafka topic offsets and table data are committed independently to achieve parallelism. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'kafka\_subscription\_cancel\_after': Sets the Kafka subscription lifespan (in minutes). Expired subscription will be cancelled automatically. </li>
                <li>'kafka\_type\_inference\_fetch\_timeout': Maximum time to collect Kafka messages before type inferencing on the set of them. </li>
                <li>'layer': Geo files layer(s) name(s): comma separated. </li>

                <li>
                  'loading\_mode': Scheme for distributing the extraction and loading of data from the source data file(s). This option applies only when loading files that are local to the database. Supported values:

                  <ul>
                    <li>'head': The head node loads all data. All files must be available to the head node. </li>
                    <li>'distributed\_shared': The head node coordinates loading data by worker processes across all nodes from shared files available to all workers. NOTE: Instead of existing on a shared source, the files can be duplicated on a source local to each host to improve performance, though the files must appear as the same data set from the perspective of all hosts performing the load. </li>
                    <li>'distributed\_local': A single worker process on each node loads all files that are available to it. This option works best when each worker loads files from its own file system, to maximize performance. In order to avoid data duplication, either each worker performing the load needs to have visibility to a set of files unique to it (no file is visible to more than one node) or the target table needs to have a primary key (which will allow the worker to automatically deduplicate data). NOTE: If the target table doesn't exist, the table structure will be determined by the head node. If the head node has no files local to it, it will be unable to determine the structure and the request will fail. If the head node is configured to have no worker processes, no data strictly accessible to the head node will be loaded. </li>
                  </ul>

                  The default value is 'head'.
                </li>

                <li>'local\_time\_offset': Apply an offset to Avro local timestamp columns. </li>
                <li>'max\_records\_to\_load': Limit the number of records to load in this request: if this number is larger than <code>batch\_size</code>, then the number of records loaded will be limited to the next whole number of <code>batch\_size</code> (per working thread). </li>
                <li>'name\_columns\_from\_file': Specifies a comma-delimited list of column names to be used as the source-data column names. If the file has a header row (i.e., <code>text\_has\_header</code> is <code>true</code>), these names override the file's header names. If the file has no header row, these names are used as the source-data column names. Either way, the i-th name in this list applies to the i-th column in the file, enabling name-based matching against the target table's columns (and use with <code>columns\_to\_load</code> / <code>columns\_to\_skip</code>). </li>
                <li>'num\_tasks\_per\_rank': Number of tasks for reading file per rank. Default will be system configuration parameter, external\_file\_reader\_num\_tasks. </li>
                <li>'poll\_interval': If <code>true</code>, the number of seconds between attempts to load external files into the table. If zero, polling will be continuous as long as data is found. If no data is found, the interval will steadily increase to a maximum of 60 seconds. The default value is '0'. </li>
                <li>'primary\_keys': Comma separated list of column names to set as primary keys, when not specified in the type. </li>
                <li>'schema\_registry\_connection\_retries': Confluent Schema registry connection timeout (in secs). </li>
                <li>'schema\_registry\_connection\_timeout': Confluent Schema registry connection timeout (in secs). </li>
                <li>'schema\_registry\_max\_consecutive\_connection\_failures': Max records to skip due to SR connection failures, before failing. </li>
                <li>'max\_consecutive\_invalid\_schema\_failure': Max records to skip due to schema related errors, before failing. </li>
                <li>'schema\_registry\_schema\_name': Name of the Avro schema in the schema registry to use when reading Avro records. </li>
                <li>'shard\_keys': Comma separated list of column names to set as shard keys, when not specified in the type. </li>
                <li>'skip\_lines': Skip a number of lines from the beginning of the file. </li>
                <li>'start\_offsets': Starting offsets by partition to fetch from kafka. A comma separated list of partition:offset pairs. </li>

                <li>
                  'subscribe': Continuously poll the data source to check for new data and load it into the table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'table\_insert\_mode': Insertion scheme to use when inserting records from multiple shapefiles. Supported values:

                  <ul>
                    <li>'single': Insert all records into a single table. </li>
                    <li>'table\_per\_file': Insert records from each file into a new table corresponding to that file. </li>
                  </ul>

                  The default value is 'single'.
                </li>

                <li>'text\_comment\_string': Specifies the character string that should be interpreted as a comment line prefix in the source data. All lines in the data starting with the provided string are ignored. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '#'. </li>
                <li>'text\_delimiter': Specifies the character delimiting field values in the source data and field names in the header (if present). For <code>delimited\_text</code> <code>file\_type</code> only. The default value is ','. </li>
                <li>'text\_escape\_character': Specifies the character that is used to escape other characters in the source data. An 'a', 'b', 'f', 'n', 'r', 't', or 'v' preceded by an escape character will be interpreted as the ASCII bell, backspace, form feed, line feed, carriage return, horizontal tab, and vertical tab, respectively. For example, the escape character followed by an 'n' will be interpreted as a newline within a field value. The escape character can also be used to escape the quoting character, and will be treated as an escape character whether it is within a quoted field value or not. For <code>delimited\_text</code> <code>file\_type</code> only. </li>

                <li>
                  'text\_has\_header': Indicates whether the source data contains a header row. For <code>delimited\_text</code><code>file\_type</code> only. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'text\_header\_property\_delimiter': Specifies the delimiter for <a href="/content/concepts/types/#column-properties" target="_top">column properties</a> in the header row (if present). Cannot be set to same value as <code>text\_delimiter</code>. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '|'. </li>
                <li>'text\_null\_string': Specifies the character string that should be interpreted as a null value in the source data. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '\N'. </li>
                <li>'text\_quote\_character': Specifies the character that should be interpreted as a field value quoting character in the source data. The character must appear at beginning and end of field value to take effect. Delimiters within quoted fields are treated as literals and not delimiters. Within a quoted field, two consecutive quote characters will be interpreted as a single literal quote character, effectively escaping it. To not have a quote character, specify an empty string. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '"'. </li>
                <li>'text\_search\_columns': Add 'text\_search' property to internally inferenced string columns. Comma separated list of column names or '\*' for all columns. To add 'text\_search' property only to string columns greater than or equal to a minimum size, also set the <code>text\_search\_min\_column\_length</code> </li>
                <li>'text\_search\_min\_column\_length': Set the minimum column size for strings to apply the 'text\_search' property to. Used only when <code>text\_search\_columns</code> has a value. </li>

                <li>
                  'trim\_space': If set to <code>true</code>, remove leading or trailing space from fields. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'truncate\_strings': If set to <code>true</code>, truncate string values that are longer than the column's type size. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'truncate\_table': If set to <code>true</code>, truncates the table specified by <code>table\_name</code> prior to loading the file(s). Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'type\_inference\_max\_records\_read' </li>

                <li>
                  'type\_inference\_mode': Optimize type inferencing for either speed or accuracy. Supported values:

                  <ul>
                    <li>'accuracy': Scans data to get exactly-typed and sized columns for all data scanned. </li>
                    <li>'speed': Scans data and picks the widest possible column types so that 'all' values will fit with minimum data scanned. </li>
                  </ul>

                  The default value is 'accuracy'.
                </li>

                <li>
                  'enable\_inplace\_updates': Applies only when upserting (when update\_on\_existing\_pk is true). If set to true (the default), an existing record matched by primary key is modified in place. If set to false, the matched record is updated by deleting it 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>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'update\_on\_existing\_pk': Specifies the record collision policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>. If set to <code>true</code>, any existing table record with primary key values that match those of a record being inserted will be replaced by that new record (the new data will be 'upserted'). If set to <code>false</code>, any existing table record with primary key values that match those of a record being inserted will remain unchanged, while the new record will be rejected and the error handled as determined by <code>ignore\_existing\_pk</code> and <code>error\_handling</code>. If the specified table does not have a primary key, then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Upsert new records when primary keys match existing records. </li>
                    <li>'false': Reject new records when primary keys match existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'transformations': Comma-separated expressions, one per target table column. Each expression is evaluated per record. Empty entries (two consecutive commas) mean no transformation for that column -- the value is resolved from the input record, table default, NULL, or an error. Expressions may reference input columns by name or by position ($1 for the first input column, $2 for the second, etc.). The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_records_from_files_request"><span className="type-signature" />insert\_records\_from\_files\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Reads from one or more files and inserts the data into a new or existing table. The source data can be located either in <a href="/content/tools/kifs/" target="_top">KiFS</a>; on the cluster, accessible to the database; or remotely, accessible via a pre-defined external <a href="/content/concepts/data_sources/" target="_top">data source</a>.

        <p />

        <p> For delimited text files, there are two loading schemes: positional and name-based. The name-based loading scheme is enabled when the file has a header present and <code>text\_has\_header</code> is set to <code>true</code>. In this scheme, the source file(s) field names must match the target table's column names exactly; however, the source file can have more fields than the target table has columns. If <code>error\_handling</code> is set to <code>permissive</code>, the source file can have fewer fields than the target table has columns. If the name-based loading scheme is being used, names matching the file header's names may be provided to <code>columns\_to\_load</code> instead of numbers, but ranges are not supported. </p>
        <p> Note: Due to data being loaded in parallel, there is no insertion order guaranteed. For tables with primary keys, in the case of a primary key collision, this means it is indeterminate which record will be inserted first and remain, while the rest of the colliding key records are discarded. </p>
        <p> Returns once all files are processed. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_records_from_json"><span className="type-signature" />insert\_records\_from\_json<span className="signature">(records, table\_name, create\_table\_options, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>records</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Either a single JSON record or an array of JSON records, as either a JSON string or a native map/array type</td>
          </tr>

          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">string</span> </td>
            <td className="description last">The name of the table to insert into</td>
          </tr>

          <tr>
            <td className="name"><code>create\_table\_options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">the same 'create\_table\_options' that apply to the '/insert/records/frompayload' endpoint</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">the 'options' that apply to the '/insert/records/frompayload' endpoint</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type">function</span> </td>
            <td className="description last">an optional callback method that receives the results</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the 'data' (containing insertion results like counts etc) object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_records_from_payload"><span className="type-signature" />insert\_records\_from\_payload<span className="signature">(table\_name, data\_text, data\_bytes, modify\_columns, create\_table\_options, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Reads from the given text-based or binary payload and inserts the data into a new or existing table. The table will be created if it doesn't already exist.
        <p> Returns once all records are processed. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table into which the data will be inserted, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. If the table does not exist, the table will be created using either an existing <code>type\_id</code> or the type inferred from the payload, and the new table name will have to meet standard <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>data\_text</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Records formatted as delimited text.</td>
          </tr>

          <tr>
            <td className="name"><code>data\_bytes</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Records formatted as binary data.</td>
          </tr>

          <tr>
            <td className="name"><code>modify\_columns</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Not implemented yet. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>create\_table\_options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Options used when creating the target table. Includes type to use. The other options match those in <a href="/content/api/nodejs/GPUdb#create_table"><code>GPUdb#create\_table</code></a>.

              <ul>
                <li>'type\_id': ID of a currently registered <a href="/content/concepts/types/" target="_top">type</a>. The default value is ''. </li>

                <li>
                  'no\_error\_if\_exists': If <code>true</code>, prevents an error from occurring if the table already exists and is of the given type. If a table with the same ID but a different type exists, it is still an error. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'is\_replicated': Affects the <a href="/content/concepts/tables/#distribution" target="_top">distribution scheme</a> for the table's data. If <code>true</code> and the given type has no explicit <a href="/content/concepts/tables/#shard-key" target="_top">shard key</a> defined, the table will be <a href="/content/concepts/tables/#replication" target="_top">replicated</a>. If <code>false</code>, the table will be <a href="/content/concepts/tables/#sharding" target="_top">sharded</a> according to the shard key specified in the given <code>type\_id</code>, or <a href="/content/concepts/tables/#random-sharding" target="_top">randomly sharded</a>, if no shard key is specified. Note that a type containing a shard key cannot be used to create a replicated table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'foreign\_keys': Semicolon-separated list of <a href="/content/concepts/tables/#foreign-keys" target="_top">foreign keys</a>, of the format '(source\_column\_name \[, ...]) references target\_table\_name(primary\_key\_column\_name \[, ...]) \[as foreign\_key\_name]'. </li>
                <li>'foreign\_shard\_key': Foreign shard key of the format 'source\_column references shard\_by\_column from target\_table(primary\_key\_column)'. </li>

                <li>
                  'partition\_type': <a href="/content/concepts/tables/#partitioning" target="_top">Partitioning</a> scheme to use. Supported values:

                  <ul>
                    <li>'RANGE': Use <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>. </li>
                    <li>'INTERVAL': Use <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>. </li>
                    <li>'LIST': Use <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>. </li>
                    <li>'HASH': Use <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>. </li>
                    <li>'SERIES': Use <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a>. </li>
                  </ul>
                </li>

                <li>'partition\_keys': Comma-separated list of partition keys, which are the columns or column expressions by which records will be assigned to partitions defined by <code>partition\_definitions</code>. </li>
                <li>'partition\_definitions': Comma-separated list of partition definitions, whose format depends on the choice of <code>partition\_type</code>. See <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>, or <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a> for example formats. </li>

                <li>
                  'is\_automatic\_partition': If <code>true</code>, a new partition will be created for values which don't fall into an existing partition. Currently only supported for <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitions</a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the table specified in <code>table\_name</code>. </li>
                <li>'chunk\_size': Indicates the number of records per chunk to be used for this table. </li>
                <li>'chunk\_column\_max\_memory': Indicates the target maximum data size for each column in a chunk to be used for this table. </li>
                <li>'chunk\_max\_memory': Indicates the target maximum data size for all columns in a chunk to be used for this table. </li>

                <li>
                  'is\_result\_table': Indicates whether the table is a <a href="/content/concepts/tables_memory_only/" target="_top">memory-only table</a>. A result table cannot contain columns with text\_search <a href="/content/concepts/types/#data-handling" target="_top">data-handling</a>, and it will not be retained if the server is restarted. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'strategy\_definition': The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression codec</a> for this table's columns. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'bad\_record\_table\_name': Name of a table to which records that were rejected are written. The bad-record-table has the following columns: line\_number (long), line\_rejected (string), error\_message (string). </li>
                <li>'bad\_record\_table\_limit': A positive integer indicating the maximum number of records that can be written to the bad-record-table. Default value is 10000. </li>
                <li>'bad\_record\_table\_limit\_per\_input': For subscriptions: A positive integer indicating the maximum number of records that can be written to the bad-record-table per file/payload. Default value will be 'bad\_record\_table\_limit' and total size of the table per rank is limited to 'bad\_record\_table\_limit'. </li>
                <li>'batch\_size': Internal tuning parameter--number of records per batch when inserting data. </li>
                <li>'column\_formats': For each target column specified, applies the column-property-bound format to the source data loaded into that column. Each column format will contain a mapping of one or more of its column properties to an appropriate format for each property. Currently supported column properties include date, time, and datetime. The parameter value must be formatted as a JSON string of maps of column names to maps of column properties to their corresponding column formats, e.g., '{"{"} "order\_date" : {"{"} "date" : "%Y.%m.%d" {"}"}, "order\_time" : {"{"} "time" : "%H:%M:%S" {"}"} {"}"}'. See <code>default\_column\_formats</code> for valid format syntax. </li>
                <li>'columns\_to\_load': Specifies a comma-delimited list of columns from the source data to load. If more than one file is being loaded, this list applies to all files. Column numbers can be specified discretely or as a range. For example, a value of '5,7,1..3' will insert values from the fifth column in the source data into the first column in the target table, from the seventh column in the source data into the second column in the target table, and from the first through third columns in the source data into the third through fifth columns in the target table. If the source data contains a header, column names matching the file header names may be provided instead of column numbers. If the target table doesn't exist, the table will be created with the columns in this order. If the target table does exist with columns in a different order than the source data, this list can be used to match the order of the target table. For example, a value of 'C, B, A' will create a three column table with column C, followed by column B, followed by column A; or will insert those fields in that order into a table created with columns in that order. If the target table exists, the column names must match the source data field names for a name-mapping to be successful. Mutually exclusive with <code>columns\_to\_skip</code>. </li>
                <li>'columns\_to\_skip': Specifies a comma-delimited list of columns from the source data to skip. Mutually exclusive with <code>columns\_to\_load</code>. </li>

                <li>
                  'compression\_type': Payload compression type. Supported values:

                  <ul>
                    <li>'none': Uncompressed. </li>
                    <li>'auto': Default. Auto detect compression type. </li>
                    <li>'gzip': gzip file compression. </li>
                    <li>'bzip2': bzip2 file compression. </li>
                  </ul>

                  The default value is 'auto'.
                </li>

                <li>'default\_column\_formats': Specifies the default format to be applied to source data loaded into columns with the corresponding column property. Currently supported column properties include date, time, and datetime. This default column-property-bound format can be overridden by specifying a column property and format for a given target column in <code>column\_formats</code>. For each specified annotation, the format will apply to all columns with that annotation unless a custom <code>column\_formats</code> for that annotation is specified. The parameter value must be formatted as a JSON string that is a map of column properties to their respective column formats, e.g., '{"{"} "date" : "%Y.%m.%d", "time" : "%H:%M:%S" {"}"}'. Column formats are specified as a string of control characters and plain text. The supported control characters are 'Y', 'm', 'd', 'H', 'M', 'S', and 's', which follow the Linux 'strptime()' specification, as well as 's', which specifies seconds and fractional seconds (though the fractional component will be truncated past milliseconds). Formats for the 'date' annotation must include the 'Y', 'm', and 'd' control characters. Formats for the 'time' annotation must include the 'H', 'M', and either 'S' or 's' (but not both) control characters. Formats for the 'datetime' annotation meet both the 'date' and 'time' control character requirements. For example, '{"{"}"datetime" : "%m/%d/%Y %H:%M:%S" {"}"}' would be used to interpret text as "05/04/2000 12:12:11" </li>

                <li>
                  'error\_handling': Specifies how errors should be handled upon insertion. Supported values:

                  <ul>
                    <li>'permissive': Records with missing columns are populated with nulls if possible; otherwise, the malformed records are skipped. </li>
                    <li>'ignore\_bad\_records': Malformed records are skipped. </li>
                    <li>'abort': Stops current insertion and aborts entire operation when an error is encountered. Primary key collisions are considered abortable errors in this mode. </li>
                  </ul>

                  The default value is 'abort'.
                </li>

                <li>
                  'file\_type': Specifies the type of the file(s) whose records will be inserted. Supported values:

                  <ul>
                    <li>'avro': Avro file format. </li>
                    <li>'delimited\_text': Delimited text file format; e.g., CSV, TSV, PSV, etc. </li>
                    <li>'gdb': Esri/GDB file format. </li>
                    <li>'json': JSON file format. </li>
                    <li>'parquet': Apache Parquet file format. </li>
                    <li>'shapefile': ShapeFile file format. </li>
                  </ul>

                  The default value is 'delimited\_text'.
                </li>

                <li>
                  'flatten\_columns': Specifies how to handle nested columns. Supported values:

                  <ul>
                    <li>'true': Break up nested columns to multiple columns. </li>
                    <li>'false': Treat nested columns as JSON columns instead of flattening. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'gdal\_configuration\_options': Comma separated list of gdal conf options, for the specific requests: key=value. The default value is ''. </li>

                <li>
                  'ignore\_existing\_pk': Specifies the record collision error-suppression policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, only used when not in upsert mode (upsert mode is disabled when <code>update\_on\_existing\_pk</code> is <code>false</code>). If set to <code>true</code>, any record being inserted that is rejected for having primary key values that match those of an existing table record will be ignored with no error generated. If <code>false</code>, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined by <code>error\_handling</code>. If the specified table does not have a primary key or if upsert mode is in effect (<code>update\_on\_existing\_pk</code> is <code>true</code>), then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Ignore new records whose primary key values collide with those of existing records. </li>
                    <li>'false': Treat as errors any new records whose primary key values collide with those of existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'ingestion\_mode': Whether to do a full load, dry run, or perform a type inference on the source data. Supported values:

                  <ul>
                    <li>'full': Run a type inference on the source data (if needed) and ingest. </li>
                    <li>'dry\_run': Does not load data, but walks through the source data and determines the number of valid records, taking into account the current mode of <code>error\_handling</code>. </li>
                    <li>'type\_inference\_only': Infer the type of the source data and return, without ingesting any data. The inferred type is returned in the response. </li>
                  </ul>

                  The default value is 'full'.
                </li>

                <li>'layer': Geo files layer(s) name(s): comma separated. The default value is ''. </li>

                <li>
                  'loading\_mode': Scheme for distributing the extraction and loading of data from the source data file(s). This option applies only when loading files that are local to the database. Supported values:

                  <ul>
                    <li>'head': The head node loads all data. All files must be available to the head node. </li>
                    <li>'distributed\_shared': The head node coordinates loading data by worker processes across all nodes from shared files available to all workers. NOTE: Instead of existing on a shared source, the files can be duplicated on a source local to each host to improve performance, though the files must appear as the same data set from the perspective of all hosts performing the load. </li>
                    <li>'distributed\_local': A single worker process on each node loads all files that are available to it. This option works best when each worker loads files from its own file system, to maximize performance. In order to avoid data duplication, either each worker performing the load needs to have visibility to a set of files unique to it (no file is visible to more than one node) or the target table needs to have a primary key (which will allow the worker to automatically deduplicate data). NOTE: If the target table doesn't exist, the table structure will be determined by the head node. If the head node has no files local to it, it will be unable to determine the structure and the request will fail. If the head node is configured to have no worker processes, no data strictly accessible to the head node will be loaded. </li>
                  </ul>

                  The default value is 'head'.
                </li>

                <li>'local\_time\_offset': For Avro local timestamp columns. </li>
                <li>'max\_records\_to\_load': Limit the number of records to load in this request: If this number is larger than a batch\_size, then the number of records loaded will be limited to the next whole number of batch\_size (per working thread). The default value is ''. </li>
                <li>'name\_columns\_from\_file': Specifies a comma-delimited list of column names to be used as the source-data column names. If the payload has a header row (i.e., <code>text\_has\_header</code> is <code>true</code>), these names override the payload's header names. If the payload has no header row, these names are used as the source-data column names. Either way, the i-th name in this list applies to the i-th column in the payload, enabling name-based matching against the target table's columns (and use with <code>columns\_to\_load</code> / <code>columns\_to\_skip</code>). </li>
                <li>'num\_tasks\_per\_rank': Number of tasks for reading file per rank. Default will be external\_file\_reader\_num\_tasks. </li>
                <li>'poll\_interval': If <code>true</code>, the number of seconds between attempts to load external files into the table. If zero, polling will be continuous as long as data is found. If no data is found, the interval will steadily increase to a maximum of 60 seconds. </li>
                <li>'primary\_keys': Comma separated list of column names, to set as primary keys, when not specified in the type. The default value is ''. </li>
                <li>'schema\_registry\_connection\_retries': Confluent Schema registry connection timeout (in secs). </li>
                <li>'schema\_registry\_connection\_timeout': Confluent Schema registry connection timeout (in secs). </li>
                <li>'schema\_registry\_max\_consecutive\_connection\_failures': Max records to skip due to SR connection failures, before failing. </li>
                <li>'max\_consecutive\_invalid\_schema\_failure': Max records to skip due to schema related errors, before failing. </li>
                <li>'schema\_registry\_schema\_name': Name of the Avro schema in the schema registry to use when reading Avro records. </li>
                <li>'shard\_keys': Comma separated list of column names, to set as shard keys, when not specified in the type. The default value is ''. </li>
                <li>'skip\_lines': Skip a number of lines from the beginning of the file. </li>

                <li>
                  'subscribe': Continuously poll the data source to check for new data and load it into the table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'table\_insert\_mode': When inserting records from multiple files: if <code>table\_per\_file</code>, then insert from each file into a new table. Currently supported only for shapefiles. Supported values:

                  <ul>
                    <li>'single' </li>
                    <li>'table\_per\_file' </li>
                  </ul>

                  The default value is 'single'.
                </li>

                <li>'text\_comment\_string': Specifies the character string that should be interpreted as a comment line prefix in the source data. All lines in the data starting with the provided string are ignored. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '#'. </li>
                <li>'text\_delimiter': Specifies the character delimiting field values in the source data and field names in the header (if present). For <code>delimited\_text</code> <code>file\_type</code> only. The default value is ','. </li>
                <li>'text\_escape\_character': Specifies the character that is used to escape other characters in the source data. An 'a', 'b', 'f', 'n', 'r', 't', or 'v' preceded by an escape character will be interpreted as the ASCII bell, backspace, form feed, line feed, carriage return, horizontal tab, and vertical tab, respectively. For example, the escape character followed by an 'n' will be interpreted as a newline within a field value. The escape character can also be used to escape the quoting character, and will be treated as an escape character whether it is within a quoted field value or not. For <code>delimited\_text</code> <code>file\_type</code> only. </li>

                <li>
                  'text\_has\_header': Indicates whether the source data contains a header row. For <code>delimited\_text</code><code>file\_type</code> only. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'text\_header\_property\_delimiter': Specifies the delimiter for <a href="/content/concepts/types/#column-properties" target="_top">column properties</a> in the header row (if present). Cannot be set to same value as <code>text\_delimiter</code>. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '|'. </li>
                <li>'text\_null\_string': Specifies the character string that should be interpreted as a null value in the source data. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '\N'. </li>
                <li>'text\_quote\_character': Specifies the character that should be interpreted as a field value quoting character in the source data. The character must appear at beginning and end of field value to take effect. Delimiters within quoted fields are treated as literals and not delimiters. Within a quoted field, two consecutive quote characters will be interpreted as a single literal quote character, effectively escaping it. To not have a quote character, specify an empty string. For <code>delimited\_text</code> <code>file\_type</code> only. The default value is '"'. </li>
                <li>'text\_search\_columns': Add 'text\_search' property to internally inferenced string columns. Comma separated list of column names or '\*' for all columns. To add text\_search property only to string columns of minimum size, set also the option 'text\_search\_min\_column\_length'. </li>
                <li>'text\_search\_min\_column\_length': Set minimum column size. Used only when 'text\_search\_columns' has a value. </li>

                <li>
                  'trim\_space': If set to <code>true</code>, remove leading or trailing space from fields. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'truncate\_strings': If set to <code>true</code>, truncate string values that are longer than the column's type size. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'truncate\_table': If set to <code>true</code>, truncates the table specified by <code>table\_name</code> prior to loading the file(s). Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'type\_inference\_max\_records\_read': The default value is ''. </li>

                <li>
                  'type\_inference\_mode': Optimize type inference mode. Supported values:

                  <ul>
                    <li>'accuracy': Scans data to get exactly-typed and sized columns for all data scanned. </li>
                    <li>'speed': Scans data and picks the widest possible column types so that 'all' values will fit with minimum data scanned. </li>
                  </ul>

                  The default value is 'accuracy'.
                </li>

                <li>
                  'enable\_inplace\_updates': Applies only when upserting (when update\_on\_existing\_pk is true). If set to true (the default), an existing record matched by primary key is modified in place. If set to false, the matched record is updated by deleting it 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>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'update\_on\_existing\_pk': Specifies the record collision policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>. If set to <code>true</code>, any existing table record with primary key values that match those of a record being inserted will be replaced by that new record (the new data will be "upserted"). If set to <code>false</code>, any existing table record with primary key values that match those of a record being inserted will remain unchanged, while the new record will be rejected and the error handled as determined by <code>ignore\_existing\_pk</code> and <code>error\_handling</code>. If the specified table does not have a primary key, then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Upsert new records when primary keys match existing records. </li>
                    <li>'false': Reject new records when primary keys match existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'transformations': Comma-separated expressions, one per target table column. Each expression is evaluated per record. Empty entries (two consecutive commas) mean no transformation for that column -- the value is resolved from the input record, table default, NULL, or an error. Expressions may reference input columns by name or by position ($1 for the first input column, $2 for the second, etc.). The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_records_from_payload_request"><span className="type-signature" />insert\_records\_from\_payload\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Reads from the given text-based or binary payload and inserts the data into a new or existing table. The table will be created if it doesn't already exist.
        <p> Returns once all records are processed. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_records_from_query"><span className="type-signature" />insert\_records\_from\_query<span className="signature">(table\_name, remote\_query, modify\_columns, create\_table\_options, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Computes remote query result and inserts the result data into a new or existing table. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table into which the data will be inserted, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. If the table does not exist, the table will be created using either an existing <code>type\_id</code> or the type inferred from the remote query, and the new table name will have to meet standard <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>remote\_query</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Query for which result data needs to be imported.</td>
          </tr>

          <tr>
            <td className="name"><code>modify\_columns</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Not implemented yet. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>create\_table\_options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Options used when creating the target table.

              <ul>
                <li>'type\_id': ID of a currently registered <a href="/content/concepts/types/" target="_top">type</a>. The default value is ''. </li>

                <li>
                  'no\_error\_if\_exists': If <code>true</code>, prevents an error from occurring if the table already exists and is of the given type. If a table with the same ID but a different type exists, it is still an error. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'is\_replicated': Affects the <a href="/content/concepts/tables/#distribution" target="_top">distribution scheme</a> for the table's data. If <code>true</code> and the given type has no explicit <a href="/content/concepts/tables/#shard-key" target="_top">shard key</a> defined, the table will be <a href="/content/concepts/tables/#replication" target="_top">replicated</a>. If <code>false</code>, the table will be <a href="/content/concepts/tables/#sharding" target="_top">sharded</a> according to the shard key specified in the given <code>type\_id</code>, or <a href="/content/concepts/tables/#random-sharding" target="_top">randomly sharded</a>, if no shard key is specified. Note that a type containing a shard key cannot be used to create a replicated table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'foreign\_keys': Semicolon-separated list of <a href="/content/concepts/tables/#foreign-keys" target="_top">foreign keys</a>, of the format '(source\_column\_name \[, ...]) references target\_table\_name(primary\_key\_column\_name \[, ...]) \[as foreign\_key\_name]'. </li>
                <li>'foreign\_shard\_key': Foreign shard key of the format 'source\_column references shard\_by\_column from target\_table(primary\_key\_column)'. </li>

                <li>
                  'partition\_type': <a href="/content/concepts/tables/#partitioning" target="_top">Partitioning</a> scheme to use. Supported values:

                  <ul>
                    <li>'RANGE': Use <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>. </li>
                    <li>'INTERVAL': Use <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>. </li>
                    <li>'LIST': Use <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>. </li>
                    <li>'HASH': Use <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>. </li>
                    <li>'SERIES': Use <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a>. </li>
                  </ul>
                </li>

                <li>'partition\_keys': Comma-separated list of partition keys, which are the columns or column expressions by which records will be assigned to partitions defined by <code>partition\_definitions</code>. </li>
                <li>'partition\_definitions': Comma-separated list of partition definitions, whose format depends on the choice of <code>partition\_type</code>. See <a href="/content/concepts/tables/#partitioning-by-range" target="_top">range partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-interval" target="_top">interval partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitioning</a>, <a href="/content/concepts/tables/#partitioning-by-hash" target="_top">hash partitioning</a>, or <a href="/content/concepts/tables/#partitioning-by-series" target="_top">series partitioning</a> for example formats. </li>

                <li>
                  'is\_automatic\_partition': If <code>true</code>, a new partition will be created for values which don't fall into an existing partition. Currently only supported for <a href="/content/concepts/tables/#partitioning-by-list" target="_top">list partitions</a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'ttl': Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the table specified in <code>table\_name</code>. </li>
                <li>'chunk\_size': Indicates the number of records per chunk to be used for this table. </li>

                <li>
                  'is\_result\_table': Indicates whether the table is a <a href="/content/concepts/tables_memory_only/" target="_top">memory-only table</a>. A result table cannot contain columns with text\_search <a href="/content/concepts/types/#data-handling" target="_top">data-handling</a>, and it will not be retained if the server is restarted. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'strategy\_definition': The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
                <li>'compression\_codec': The default <a href="/content/concepts/column_compression/" target="_top">compression codec</a> for this table's columns. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'bad\_record\_table\_name': Name of a table to which records that were rejected are written. The bad-record-table has the following columns: line\_number (long), line\_rejected (string), error\_message (string). When error handling is Abort, bad records table is not populated. </li>
                <li>'bad\_record\_table\_limit': A positive integer indicating the maximum number of records that can be written to the bad-record-table. Default value is 10000. </li>
                <li>'batch\_size': Number of records per batch when inserting data. </li>
                <li>'datasource\_name': Name of an existing external data source from which table will be loaded. </li>

                <li>
                  'error\_handling': Specifies how errors should be handled upon insertion. Supported values:

                  <ul>
                    <li>'permissive': Records with missing columns are populated with nulls if possible; otherwise, the malformed records are skipped. </li>
                    <li>'ignore\_bad\_records': Malformed records are skipped. </li>
                    <li>'abort': Stops current insertion and aborts entire operation when an error is encountered. Primary key collisions are considered abortable errors in this mode. </li>
                  </ul>

                  The default value is 'abort'.
                </li>

                <li>
                  'ignore\_existing\_pk': Specifies the record collision error-suppression policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, only used when not in upsert mode (upsert mode is disabled when <code>update\_on\_existing\_pk</code> is <code>false</code>). If set to <code>true</code>, any record being inserted that is rejected for having primary key values that match those of an existing table record will be ignored with no error generated. If <code>false</code>, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined by <code>error\_handling</code>. If the specified table does not have a primary key or if upsert mode is in effect (<code>update\_on\_existing\_pk</code> is <code>true</code>), then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Ignore new records whose primary key values collide with those of existing records. </li>
                    <li>'false': Treat as errors any new records whose primary key values collide with those of existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'ingestion\_mode': Whether to do a full load, dry run, or perform a type inference on the source data. Supported values:

                  <ul>
                    <li>'full': Run a type inference on the source data (if needed) and ingest. </li>
                    <li>'dry\_run': Does not load data, but walks through the source data and determines the number of valid records, taking into account the current mode of <code>error\_handling</code>. </li>
                    <li>'type\_inference\_only': Infer the type of the source data and return, without ingesting any data. The inferred type is returned in the response. </li>
                  </ul>

                  The default value is 'full'.
                </li>

                <li>'jdbc\_fetch\_size': The JDBC fetch size, which determines how many rows to fetch per round trip. </li>
                <li>'jdbc\_session\_init\_statement': Executes the statement per each JDBC session before doing actual load. The default value is ''. </li>
                <li>'num\_splits\_per\_rank': Number of splits for reading data per rank. Default will be external\_file\_reader\_num\_tasks. The default value is ''. </li>
                <li>'num\_tasks\_per\_rank': Number of tasks for reading data per rank. Default will be external\_file\_reader\_num\_tasks. </li>
                <li>'primary\_keys': Comma separated list of column names, to set as primary keys, when not specified in the type. The default value is ''. </li>
                <li>'shard\_keys': Comma separated list of column names, to set as shard keys, when not specified in the type. The default value is ''. </li>

                <li>
                  'subscribe': Continuously poll the data source to check for new data and load it into the table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'truncate\_table': If set to <code>true</code>, truncates the table specified by <code>table\_name</code> prior to loading the data. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'remote\_query': Remote SQL query from which data will be sourced. </li>
                <li>'remote\_query\_order\_by': Name of column to be used for splitting the query into multiple sub-queries using ordering of given column. The default value is ''. </li>
                <li>'remote\_query\_filter\_column': Name of column to be used for splitting the query into multiple sub-queries using the data distribution of given column. The default value is ''. </li>
                <li>'remote\_query\_increasing\_column': Column on subscribed remote query result that will increase for new records (e.g., TIMESTAMP). The default value is ''. </li>
                <li>'remote\_query\_partition\_column': Alias name for <code>remote\_query\_filter\_column</code>. The default value is ''. </li>

                <li>
                  'truncate\_strings': If set to <code>true</code>, truncate string values that are longer than the column's type size. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'enable\_inplace\_updates': Applies only when upserting (when update\_on\_existing\_pk is true). If set to true (the default), an existing record matched by primary key is modified in place. If set to false, the matched record is updated by deleting it 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>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'update\_on\_existing\_pk': Specifies the record collision policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>. If set to <code>true</code>, any existing table record with primary key values that match those of a record being inserted will be replaced by that new record (the new data will be "upserted"). If set to <code>false</code>, any existing table record with primary key values that match those of a record being inserted will remain unchanged, while the new record will be rejected and the error handled as determined by <code>ignore\_existing\_pk</code> and <code>error\_handling</code>. If the specified table does not have a primary key, then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Upsert new records when primary keys match existing records. </li>
                    <li>'false': Reject new records when primary keys match existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_records_from_query_request"><span className="type-signature" />insert\_records\_from\_query\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Computes remote query result and inserts the result data into a new or existing table. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_records_random"><span className="type-signature" />insert\_records\_random<span className="signature">(table\_name, count, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Generates a specified number of random records and adds them to the given table. There is an optional parameter that allows the user to customize the ranges of the column values. It also allows the user to specify linear profiles for some or all columns in which case linear values are generated rather than random ones. Only individual tables are supported for this operation.
        <p> This operation is synchronous, meaning that a response will not be returned until all random records are fully available. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Table to which random records will be added, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table, not a view.</td>
          </tr>

          <tr>
            <td className="name"><code>count</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Number of records to generate.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameter to pass in specifications for the randomness of the values. This map is different from the \*options\* parameter of most other endpoints in that it is a map of string to map of string to doubles, while most others are maps of string to string. In this map, the top level keys represent which column's parameters are being specified, while the internal keys represents which parameter is being specified. These parameters take on different meanings depending on the type of the column.

              <ul>
                <li>
                  'seed': If provided, the internal random number generator will be initialized with the given value. The minimum is 0. This allows for the same set of random numbers to be generated across invocation of this endpoint in case the user wants to repeat the test. Since <code>options</code>, is a map of maps, we need an internal map to provide the seed value. For example, to pass 100 as the seed value through this parameter, you need something equivalent to: 'options' = {"{"}'seed': {"{"} 'value': 100 {"}"} {"}"}.

                  <ul>
                    <li>'value': The seed value to use. </li>
                  </ul>
                </li>

                <li>
                  'all': This key indicates that the specifications relayed in the internal map are to be applied to all columns of the records.

                  <ul>
                    <li>'min': For numerical columns, the minimum of the generated values is set to this value. Default is -99999. For point, shape, and track columns, min for numeric 'x' and 'y' columns needs to be within \[-180, 180] and \[-90, 90], respectively. The default minimum possible values for these columns in such cases are -180.0 and -90.0. For the 'TIMESTAMP' column, the default minimum corresponds to Jan 1, 2010. For string columns, the minimum length of the randomly generated strings is set to this value (default is 0). If both minimum and maximum are provided, minimum must be less than or equal to max. If the min is outside the accepted ranges for strings columns and 'x' and 'y' columns for point/shape/track, then those parameters will not be set; however, an error will not be thrown in such a case. It is the responsibility of the user to use the <code>all</code> parameter judiciously. </li>
                    <li>'max': For numerical columns, the maximum of the generated values is set to this value. Default is 99999. For point, shape, and track columns, max for numeric 'x' and 'y' columns needs to be within \[-180, 180] and \[-90, 90], respectively. The default minimum possible values for these columns in such cases are 180.0 and 90.0. For string columns, the maximum length of the randomly generated strings. If both minimum and maximum are provided, \*max\* must be greater than or equal to \*min\*. If the \*max\* is outside the accepted ranges for strings columns and 'x' and 'y' columns for point/shape/track, then those parameters will not be set; however, an error will not be thrown in such a case. It is the responsibility of the user to use the <code>all</code> parameter judiciously. </li>
                    <li>'interval': If specified, generate values for all columns evenly spaced with the given interval value. If a max value is specified for a given column the data is randomly generated between min and max and decimated down to the interval. If no max is provided the data is linearly generated starting at the minimum value (instead of generating random data). For non-decimated string-type columns the interval value is ignored. Instead the values are generated following the pattern: 'attrname\_creationIndex#', i.e. the column name suffixed with an underscore and a running counter (starting at 0). For string types with limited size (e.g. char4) the prefix is dropped. No nulls will be generated for nullable columns. </li>
                    <li>'null\_percentage': If specified, then generate the given percentage of the count as nulls for all nullable columns. This option will be ignored for non-nullable columns. The value must be within the range \[0, 1.0]. The default value is 5% (0.05). </li>
                    <li>'cardinality': If specified, limit the randomly generated values to a fixed set. Not allowed on a column with interval specified, and is not applicable to WKT or Track-specific columns. The value must be greater than 0. This option is disabled by default. </li>
                  </ul>
                </li>

                <li>
                  'attr\_name': Use the desired column name in place of <code>attr\_name</code>, and set the following parameters for the column specified. This overrides any parameter set by <code>all</code>.

                  <ul>
                    <li>'min': For numerical columns, the minimum of the generated values is set to this value. Default is -99999. For point, shape, and track columns, min for numeric 'x' and 'y' columns needs to be within \[-180, 180] and \[-90, 90], respectively. The default minimum possible values for these columns in such cases are -180.0 and -90.0. For the 'TIMESTAMP' column, the default minimum corresponds to Jan 1, 2010. For string columns, the minimum length of the randomly generated strings is set to this value (default is 0). If both minimum and maximum are provided, minimum must be less than or equal to max. If the min is outside the accepted ranges for strings columns and 'x' and 'y' columns for point/shape/track, then those parameters will not be set; however, an error will not be thrown in such a case. It is the responsibility of the user to use the <code>all</code> parameter judiciously. </li>
                    <li>'max': For numerical columns, the maximum of the generated values is set to this value. Default is 99999. For point, shape, and track columns, max for numeric 'x' and 'y' columns needs to be within \[-180, 180] and \[-90, 90], respectively. The default minimum possible values for these columns in such cases are 180.0 and 90.0. For string columns, the maximum length of the randomly generated strings. If both minimum and maximum are provided, \*max\* must be greater than or equal to \*min\*. If the \*max\* is outside the accepted ranges for strings columns and 'x' and 'y' columns for point/shape/track, then those parameters will not be set; however, an error will not be thrown in such a case. It is the responsibility of the user to use the <code>all</code> parameter judiciously. </li>
                    <li>'interval': If specified, generate values for all columns evenly spaced with the given interval value. If a max value is specified for a given column the data is randomly generated between min and max and decimated down to the interval. If no max is provided the data is linearly generated starting at the minimum value (instead of generating random data). For non-decimated string-type columns the interval value is ignored. Instead the values are generated following the pattern: 'attrname\_creationIndex#', i.e. the column name suffixed with an underscore and a running counter (starting at 0). For string types with limited size (e.g. char4) the prefix is dropped. No nulls will be generated for nullable columns. </li>
                    <li>'null\_percentage': If specified and if this column is nullable, then generate the given percentage of the count as nulls. This option will result in an error if the column is not nullable. The value must be within the range \[0, 1.0]. The default value is 5% (0.05). </li>
                    <li>'cardinality': If specified, limit the randomly generated values to a fixed set. Not allowed on a column with interval specified, and is not applicable to WKT or Track-specific columns. The value must be greater than 0. This option is disabled by default. </li>
                  </ul>
                </li>

                <li>
                  'track\_length': This key-map pair is only valid for track data sets (an error is thrown otherwise). No nulls would be generated for nullable columns.

                  <ul>
                    <li>'min': Minimum possible length for generated series; default is 100 records per series. Must be an integral value within the range \[1, 500]. If both min and max are specified, min must be less than or equal to max. The minimum allowed value is 1. The maximum allowed value is 500. </li>
                    <li>'max': Maximum possible length for generated series; default is 500 records per series. Must be an integral value within the range \[1, 500]. If both min and max are specified, max must be greater than or equal to min. The minimum allowed value is 1. The maximum allowed value is 500. </li>
                  </ul>
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_records_random_request"><span className="type-signature" />insert\_records\_random\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Generates a specified number of random records and adds them to the given table. There is an optional parameter that allows the user to customize the ranges of the column values. It also allows the user to specify linear profiles for some or all columns in which case linear values are generated rather than random ones. Only individual tables are supported for this operation.
        <p> This operation is synchronous, meaning that a response will not be returned until all random records are fully available. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_records_request"><span className="type-signature" />insert\_records\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Adds multiple records to the specified table. The operation is synchronous, meaning that a response will not be returned until all the records are fully inserted and available. The response payload provides the counts of the number of records actually inserted and/or updated, and can provide the unique identifier of each added record.
        <p> The <code>options</code> parameter can be used to customize this function's behavior. </p>
        <p> The <code>update\_on\_existing\_pk</code> option specifies the record collision policy for inserting into a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, but is ignored if no primary key exists. </p>
        <p> The <code>return\_record\_ids</code> option indicates that the database should return the unique identifiers of inserted records. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_symbol"><span className="type-signature" />insert\_symbol<span className="signature">(symbol\_id, symbol\_format, symbol\_data, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Adds a symbol or icon (i.e. an image) to represent data points when data is rendered visually. Users must provide the symbol identifier (string), a format (currently supported: 'svg' and 'svg\_path'), the data for the symbol, and any additional optional parameter (e.g. color). To have a symbol used for rendering create a table with a string column named 'SYMBOLCODE' (along with 'x' or 'y' for example). Then when the table is rendered (via <a href="/content/api/rest/wms_rest/" target="_top">WMS</a>) if the 'dosymbology' parameter is 'true' then the value of the 'SYMBOLCODE' column is used to pick the symbol displayed for each point. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>symbol\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The id of the symbol being added. This is the same id that should be in the 'SYMBOLCODE' column for objects using this symbol.</td>
          </tr>

          <tr>
            <td className="name"><code>symbol\_format</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Specifies the symbol format. Must be either 'svg' or 'svg\_path'. Supported values:

              <ul>
                <li>'svg' </li>
                <li>'svg\_path' </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>symbol\_data</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The actual symbol data. If <code>symbol\_format</code> is 'svg' then this should be the raw bytes representing an svg file. If <code>symbol\_format</code> is svg path then this should be an svg path string; for example: 'M25.979,12.896,5.979,12.896,5.979,19.562,25.979,19.562z'.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'color': If <code>symbol\_format</code> is 'svg' this is ignored. If <code>symbol\_format</code> is 'svg\_path' then this option specifies the color (in RRGGBB hex format) of the path. For example, to have the path rendered in red, used 'FF0000'. If 'color' is not provided then '00FF00' (i.e. green) is used by default. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="insert_symbol_request"><span className="type-signature" />insert\_symbol\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Adds a symbol or icon (i.e. an image) to represent data points when data is rendered visually. Users must provide the symbol identifier (string), a format (currently supported: 'svg' and 'svg\_path'), the data for the symbol, and any additional optional parameter (e.g. color). To have a symbol used for rendering create a table with a string column named 'SYMBOLCODE' (along with 'x' or 'y' for example). Then when the table is rendered (via <a href="/content/api/rest/wms_rest/" target="_top">WMS</a>) if the 'dosymbology' parameter is 'true' then the value of the 'SYMBOLCODE' column is used to pick the symbol displayed for each point. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="kill_proc"><span className="type-signature" />kill\_proc<span className="signature">(run\_id, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Kills a running proc instance. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>run\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The run ID of a running proc instance. If a proc with a matching run ID is not found or the proc instance has already completed, no procs will be killed. If not specified, all running proc instances will be killed. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'run\_tag': If <code>run\_id</code> is specified, kill the proc instance that has a matching run ID and a matching run tag that was provided to <a href="/content/api/nodejs/GPUdb#execute_proc"><code>GPUdb#execute\_proc</code></a>. If <code>run\_id</code> is not specified, kill the proc instance(s) where a matching run tag was provided to <a href="/content/api/nodejs/GPUdb#execute_proc"><code>GPUdb#execute\_proc</code></a>. The default value is ''. </li>

                <li>
                  'clear\_execute\_at\_startup': If <code>true</code>, kill and remove the instance of the proc matching the auto-start run ID that was created to run when the database is started. The auto-start run ID was returned from <a href="/content/api/nodejs/GPUdb#execute_proc"><code>GPUdb#execute\_proc</code></a> and can be retrieved using <a href="/content/api/nodejs/GPUdb#show_proc"><code>GPUdb#show\_proc</code></a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="kill_proc_request"><span className="type-signature" />kill\_proc\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Kills a running proc instance. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="lock_table"><span className="type-signature" />lock\_table<span className="signature">(table\_name, lock\_type, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Manages global access to a table's data. By default a table has a <code>lock\_type</code> of <code>read\_write</code>, indicating all operations are permitted. A user may request a <code>read\_only</code> or a <code>write\_only</code> lock, after which only read or write operations, respectively, are permitted on the table until the lock is removed. When <code>lock\_type</code> is <code>no\_access</code> then no operations are permitted on the table. The lock status can be queried by setting <code>lock\_type</code> to <code>status</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to be locked, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. It must be a currently existing table or view.</td>
          </tr>

          <tr>
            <td className="name"><code>lock\_type</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              The type of lock being applied to the table. Setting it to <code>status</code> will return the current lock status of the table without changing it. Supported values:

              <ul>
                <li>'status': Show locked status. </li>
                <li>'no\_access': Allow no read/write operations. </li>
                <li>'read\_only': Allow only read operations. </li>
                <li>'write\_only': Allow only write operations. </li>
                <li>'read\_write': Allow all read/write operations. </li>
              </ul>

              The default value is 'status'.
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="lock_table_request"><span className="type-signature" />lock\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Manages global access to a table's data. By default a table has a <code>lock\_type</code> of <code>read\_write</code>, indicating all operations are permitted. A user may request a <code>read\_only</code> or a <code>write\_only</code> lock, after which only read or write operations, respectively, are permitted on the table until the lock is removed. When <code>lock\_type</code> is <code>no\_access</code> then no operations are permitted on the table. The lock status can be queried by setting <code>lock\_type</code> to <code>status</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="match_graph"><span className="type-signature" />match\_graph<span className="signature">(graph\_name, sample\_points, solve\_method, solution\_table, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Matches a directed route implied by a given set of latitude/longitude points to an existing underlying road network graph using a given solution type.
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, the <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a>, and/or some <a href="/content/guides/tags/graph-match" target="_top">/match/graph examples</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>graph\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the underlying geospatial graph resource to match to using <code>sample\_points</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>sample\_points</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Sample points used to match to an underlying geospatial graph. Sample points must be specified using <a href="/content/graph_solver/network_graph_solver/#match-identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#match-combinations" target="_top">combinations</a>. Identifiers can be used with: existing column names, e.g., 'table.column AS SAMPLE\_X'; expressions, e.g., 'ST\_MAKEPOINT(table.x, table.y) AS SAMPLE\_WKTPOINT'; or constant values, e.g., '{"{"}1, 2, 10{"}"} AS SAMPLE\_TRIPID'.</td>
          </tr>

          <tr>
            <td className="name"><code>solve\_method</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              The type of solver to use for graph matching. Supported values:

              <ul>
                <li>'markov\_chain': Matches <code>sample\_points</code> to the graph using the Hidden Markov Model (HMM)-based method, which conducts a range-tree closest-edge search to find the best combinations of possible road segments (<code>num\_segments</code>) for each sample point to create the best route. The route is secured one point at a time while looking ahead <code>chain\_width</code> number of points, so the prediction is corrected after each point. This solution type is the most accurate but also the most computationally intensive. Related options: <code>num\_segments</code> and <code>chain\_width</code>. </li>
                <li>'match\_od\_pairs': Matches <code>sample\_points</code> to find the most probable path between origin and destination pairs with cost constraints. </li>
                <li>'match\_supply\_demand': Matches <code>sample\_points</code> to optimize scheduling multiple supplies (trucks) with varying sizes to varying demand sites with varying capacities per depot. Related options: <code>partial\_loading</code> and <code>max\_combinations</code>. </li>
                <li>'match\_batch\_solves': Matches <code>sample\_points</code> source and destination pairs for the shortest path solves in batch mode. </li>
                <li>'match\_loops': Matches closed loops (Eulerian paths) originating and ending at each graph node within min and max hops (levels). </li>
                <li>'match\_charging\_stations': Matches an optimal path across a number of ev-charging stations between source and target locations. </li>
                <li>'match\_similarity': Matches the intersection set(s) by computing the Jaccard similarity score between node pairs. </li>
                <li>'match\_pickup\_dropoff': Matches the pickups and dropoffs by optimizing the total trip costs. </li>
                <li>'match\_clusters': Matches the graph nodes with a cluster index using Louvain clustering algorithm. </li>
                <li>'match\_pattern': Matches a pattern in the graph. </li>
                <li>'match\_embedding': Creates vector node embeddings. </li>
                <li>'match\_isochrone': Solves for isochrones for a set of input sources. </li>
                <li>'match\_route\_detour': Computes detour costs for nearby stations at a mark point along each source-target route. </li>
              </ul>

              The default value is 'markov\_chain'.
            </td>
          </tr>

          <tr>
            <td className="name"><code>solution\_table</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The name of the table used to store the results, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. This table contains a <a href="/content/location_intelligence/geo_objects/#geospatial-tracks" target="_top">track</a> of geospatial points for the matched portion of the graph, a track ID, and a score value. Also outputs a details table containing a trip ID (that matches the track ID), the latitude/longitude pair, the timestamp the point was recorded at, and an edge ID corresponding to the matched road segment. Must not be an existing table of the same name. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Additional parameters.

              <ul>
                <li>'gps\_noise': GPS noise value (in meters) to remove redundant sample points. Use -1 to disable noise reduction. The default value accounts for 95% of point variation (+ or -5 meters). The default value is '5.0'. </li>
                <li>'num\_segments': Maximum number of potentially matching road segments for each sample point. For the <code>markov\_chain</code> solver, the default is 3. The default value is '3'. </li>
                <li>'search\_radius': Maximum search radius used when snapping sample points onto potentially matching surrounding segments. The default value corresponds to approximately 100 meters. The default value is '0.001'. </li>
                <li>'chain\_width': For the <code>markov\_chain</code> solver only. Length of the sample points lookahead window within the Markov kernel; the larger the number, the more accurate the solution. The default value is '9'. </li>
                <li>'source': WKT starting point from <code>sample\_points</code> for the solver. The default behavior for the endpoint is to use time to determine the starting point. The default value is 'POINT NULL'. </li>
                <li>'destination': WKT ending point from <code>sample\_points</code> for the solver. The default behavior for the endpoint is to use time to determine the destination point. The default value is 'POINT NULL'. </li>

                <li>
                  'partial\_loading': For the <code>match\_supply\_demand</code> solver only. When false (non-default), trucks do not off-load at the demand (store) side if the remainder is less than the store's need. Supported values:

                  <ul>
                    <li>'true': Partial off-loading at multiple store (demand) locations. </li>
                    <li>'false': No partial off-loading allowed if supply is less than the store's demand. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'max\_combinations': For the <code>match\_supply\_demand</code> solver only. This is the cutoff for the number of generated combinations for sequencing the demand locations - can increase this up to 2M. The default value is '10000'. </li>
                <li>'max\_supply\_combinations': For the <code>match\_supply\_demand</code> solver only. This is the cutoff for the number of generated combinations for sequencing the supply locations if/when 'permute\_supplies' is true. The default value is '10000'. </li>
                <li>'left\_turn\_penalty': This will add an additional weight over the edges labeled as 'left turn' if the 'add\_turn' option parameter of the <a href="/content/api/nodejs/GPUdb#create_graph"><code>GPUdb#create\_graph</code></a> was invoked at graph creation. The default value is '0.0'. </li>
                <li>'right\_turn\_penalty': This will add an additional weight over the edges labeled as' right turn' if the 'add\_turn' option parameter of the <a href="/content/api/nodejs/GPUdb#create_graph"><code>GPUdb#create\_graph</code></a> was invoked at graph creation. The default value is '0.0'. </li>
                <li>'intersection\_penalty': This will add an additional weight over the edges labeled as 'intersection' if the 'add\_turn' option parameter of the <a href="/content/api/nodejs/GPUdb#create_graph"><code>GPUdb#create\_graph</code></a> was invoked at graph creation. The default value is '0.0'. </li>
                <li>'sharp\_turn\_penalty': This will add an additional weight over the edges labeled as 'sharp turn' or 'u-turn' if the 'add\_turn' option parameter of the <a href="/content/api/nodejs/GPUdb#create_graph"><code>GPUdb#create\_graph</code></a> was invoked at graph creation. The default value is '0.0'. </li>
                <li>'aggregated\_output': For the <code>match\_supply\_demand</code> solver only. When it is true (default), each record in the output table shows a particular truck's scheduled cumulative round trip path (MULTILINESTRING) and the corresponding aggregated cost. Otherwise, each record shows a single scheduled truck route (LINESTRING) towards a particular demand location (store id) with its corresponding cost. The default value is 'true'. </li>
                <li>'output\_tracks': For the <code>match\_supply\_demand</code> solver only. When it is true (non-default), the output will be in tracks format for all the round trips of each truck in which the timestamps are populated directly from the edge weights starting from their originating depots. The default value is 'false'. </li>
                <li>'max\_trip\_cost': For the <code>match\_supply\_demand</code> and <code>match\_pickup\_dropoff</code> solvers only. If this constraint is greater than zero (default) then the trucks/rides will skip traveling from one demand/pick location to another if the cost between them is greater than this number (distance or time). Zero (default) value means no check is performed. The default value is '0.0'. </li>

                <li>
                  'filter\_folding\_paths': For the <code>markov\_chain</code> solver only. When true (non-default), the paths per sequence combination is checked for folding over patterns and can significantly increase the execution time depending on the chain width and the number of GPS samples. Supported values:

                  <ul>
                    <li>'true': Filter out the folded paths. </li>
                    <li>'false': Do not filter out the folded paths. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'unit\_unloading\_cost': For the <code>match\_supply\_demand</code> solver only. The unit cost per load amount to be delivered. If this value is greater than zero (default) then the additional cost of this unit load multiplied by the total dropped load will be added over to the trip cost to the demand location. The default value is '0.0'. </li>
                <li>'max\_num\_threads': For the <code>markov\_chain</code> solver only. If specified (greater than zero), the maximum number of threads will not be greater than the specified value. It can be lower due to the memory and the number cores available. Default value of zero allows the algorithm to set the maximal number of threads within these constraints. The default value is '0'. </li>
                <li>'service\_limit': For the <code>match\_supply\_demand</code> solver only. If specified (greater than zero), any supply actor's total service cost (distance or time) will be limited by the specified value including multiple rounds (if set). The default value is '0.0'. </li>

                <li>
                  'enable\_reuse': For the <code>match\_supply\_demand</code> solver only. If specified (true), all supply actors can be scheduled for second rounds from their originating depots. Supported values:

                  <ul>
                    <li>'true': Allows reusing supply actors (trucks, e.g.) for scheduling again. </li>
                    <li>'false': Supply actors are scheduled only once from their depots. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'max\_stops': For the <code>match\_supply\_demand</code> solver only. If specified (greater than zero), a supply actor (truck) can at most have this many stops (demand locations) in one round trip. Otherwise, it is unlimited. If 'enable\_truck\_reuse' is on, this condition will be applied separately at each round trip use of the same truck. The default value is '0'. </li>
                <li>'service\_radius': For the <code>match\_supply\_demand</code> and <code>match\_pickup\_dropoff</code> solvers only. If specified (greater than zero), it filters the demands/picks outside this radius centered around the supply actor/ride's originating location (distance or time). The default value is '0.0'. </li>

                <li>
                  'permute\_supplies': For the <code>match\_supply\_demand</code> solver only. If specified (true), supply side actors are permuted for the demand combinations during MSDO optimization - note that this option increases optimization time significantly - use of 'max\_combinations' option is recommended to prevent prohibitively long runs. Supported values:

                  <ul>
                    <li>'true': Generates sequences over supply side permutations if total supply is less than twice the total demand. </li>
                    <li>'false': Permutations are not performed, rather a specific order of supplies based on capacity is computed. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'batch\_tsm\_mode': For the <code>match\_supply\_demand</code> solver only. When enabled, it sets the number of visits on each demand location by a single salesman at each trip is considered to be (one) 1, otherwise there is no bound. Supported values:

                  <ul>
                    <li>'true': Sets only one visit per demand location by a salesman (TSM mode). </li>
                    <li>'false': No preset limit (usual MSDO mode). </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'round\_trip': For the <code>match\_supply\_demand</code> solver only. When enabled, the supply will have to return back to the origination location. Supported values:

                  <ul>
                    <li>'true': The optimization is done for trips in round trip manner always returning to originating locations. </li>
                    <li>'false': Supplies do not have to come back to their originating locations in their routes. The routes are considered finished at the final dropoff. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'num\_cycles': For the <code>match\_clusters</code> solver only. Terminates the cluster exchange iterations across 2-step-cycles (outer loop) when quality does not improve during iterations. The default value is '10'. </li>
                <li>'num\_loops\_per\_cycle': For the <code>match\_clusters</code> and <code>match\_embedding</code> solvers only. Terminates the cluster exchanges within the first step iterations of a cycle (inner loop) unless convergence is reached. The default value is '10'. </li>
                <li>'num\_output\_clusters': For the <code>match\_clusters</code> solver only. Limits the output to the top 'num\_output\_clusters' clusters based on density. Default value of zero outputs all clusters. The default value is '0'. </li>
                <li>'max\_num\_clusters': For the <code>match\_clusters</code> and <code>match\_embedding</code> solvers only. If set (value greater than zero), it terminates when the number of clusters goes below than this number. For embedding solver the default is 8. The default value is '0'. </li>

                <li>
                  'cluster\_quality\_metric': For the <code>match\_clusters</code> solver only. The quality metric for Louvain modularity optimization solver. Supported values:

                  <ul>
                    <li>'girvan': Uses the Newman Girvan quality metric for cluster solver. </li>
                    <li>'spectral': Applies recursive spectral bisection (RSB) partitioning solver. </li>
                  </ul>

                  The default value is 'girvan'.
                </li>

                <li>
                  'restricted\_type': For the <code>match\_supply\_demand</code> solver only. Optimization is performed by restricting routes labeled by 'MSDO\_ODDEVEN\_RESTRICTED' only for this supply actor (truck) type. Supported values:

                  <ul>
                    <li>'odd': Applies odd/even rule restrictions to odd tagged vehicles. </li>
                    <li>'even': Applies odd/even rule restrictions to even tagged vehicles. </li>
                    <li>'none': Does not apply odd/even rule restrictions to any vehicles. </li>
                  </ul>

                  The default value is 'none'.
                </li>

                <li>'server\_id': Indicates which graph server(s) to send the request to. Default is to send to the server, amongst those containing the corresponding graph, that has the most computational bandwidth. The default value is ''. </li>

                <li>
                  'inverse\_solve': For the <code>match\_batch\_solves</code> solver only. Solves source-destination pairs using inverse shortest path solver. Supported values:

                  <ul>
                    <li>'true': Solves using inverse shortest path solver. </li>
                    <li>'false': Solves using direct shortest path solver. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'min\_loop\_level': For the <code>match\_loops</code> solver only. Finds closed loops around each node deducible not less than this minimal hop (level) deep. The default value is '0'. </li>
                <li>'max\_loop\_level': For the <code>match\_loops</code> solver only. Finds closed loops around each node deducible not more than this maximal hop (level) deep. The default value is '5'. </li>
                <li>'search\_limit': For the <code>match\_loops</code> solver only. Searches within this limit of nodes per vertex to detect loops. The value zero means there is no limit. The default value is '10000'. </li>
                <li>'output\_batch\_size': For the <code>match\_loops</code> solver only. Uses this value as the batch size of the number of loops in flushing(inserting) to the output table. The default value is '1000'. </li>

                <li>
                  'multi\_step': For the <code>match\_supply\_demand</code> solver only. Runs multiple supply demand solver repeatedly in a multi step cycle by switching supplies to demands until it reaches the main hub supply. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'charging\_capacity': For the <code>match\_charging\_stations</code> solver only. This is the maximum ev-charging capacity of a vehicle (distance in meters or time in seconds depending on the unit of the graph weights). The default value is '300000.0'. </li>
                <li>'charging\_candidates': For the <code>match\_charging\_stations</code> solver only. Solver searches for this many number of stations closest around each base charging location found by capacity. The default value is '10'. </li>
                <li>'charging\_penalty': For the <code>match\_charging\_stations</code> solver only. This is the penalty for full charging. The default value is '30000.0'. </li>
                <li>'detour\_mark\_cost': For the <code>match\_route\_detour</code> solver only. Cost along the route at which to search for nearby stations If zero, it solves along the trip sliding the 3 SSSP cycle kernel by radius amount. The default value is '3600.0'. </li>
                <li>'detour\_reentry\_factor': For the <code>match\_route\_detour</code> solver only. Multiplier on detour\_mark\_cost to determine the reentry point on the route (default 1.2 means 20% further along). The default value is '1.2'. </li>
                <li>'detour\_search\_radius': For the <code>match\_route\_detour</code> solver only. Search radius around the mark point for finding nearby prospective stations (e.g. cafes, pit stops, EV charging stations). The default value is '600.0'. </li>
                <li>'detour\_search\_limit': For the <code>match\_route\_detour</code> solver only. Maximum number of nearby stations to consider within the search radius around the mark point. The default value is '10'. </li>
                <li>'max\_hops': For the <code>match\_similarity</code> and <code>match\_embedding</code> solvers only. Searches within this maximum hops for source and target node pairs to compute the Jaccard scores. The default value is '3'. </li>
                <li>'traversal\_node\_limit': For the <code>match\_similarity</code> solver only. Limits the traversal depth if it reaches this many number of nodes. The default value is '1000'. </li>

                <li>
                  'paired\_similarity': For the <code>match\_similarity</code> solver only. If true, it computes Jaccard score between each pair, otherwise it will compute Jaccard from the intersection set between the source and target nodes. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'force\_undirected': For the <code>match\_pattern</code> and <code>match\_embedding</code> solvers only. Pattern matching will be using both pattern and graph as undirected if set to true. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'max\_vector\_dimension': For the <code>match\_embedding</code> solver only. Limits the number of dimensions in node vector embeddings. The default value is '1000'. </li>

                <li>
                  'optimize\_embedding\_weights': For the <code>match\_embedding</code> solvers only. Solves to find the optimal weights per sub feature in vector embeddings. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'embedding\_weights': For the <code>match\_embedding</code> solver only. User specified weights per sub feature in vector embeddings. The string contains the comma separated float values for each sub-feature in the vector space. These values will ONLY be used if 'optimize\_embedding\_weights' is false. The default value is '1.0,1.0,1.0,1.0'. </li>
                <li>'optimization\_sampling\_size': For the <code>match\_embedding</code> solver only. Sets the number of random nodes from the graph for solving the weights using stochastic gradient descent. The default value is '1000'. </li>
                <li>'optimization\_max\_iterations': For the <code>match\_embedding</code> solver only. When the iterations (epochs) for the convergence of the stochastic gradient descent algorithm reaches this number it bails out unless relative error between consecutive iterations is below the 'optimization\_error\_tolerance' option. The default value is '1000'. </li>
                <li>'optimization\_error\_tolerance': For the <code>match\_embedding</code> solver only. When the relative error between all of the weights' consecutive iterations falls below this threshold the optimization cycle is interrupted unless the number of iterations reaches the limit set by the option 'max\_optimization\_iterations'. The default value is '0.001'. </li>
                <li>'optimization\_iteration\_rate': For the <code>match\_embedding</code> solver only. It is otherwise known as the learning rate, which is the proportionality constant in front of the gradient term in successive iterations. The default value is '0.3'. </li>
                <li>'max\_radius': For the <code>match\_isochrone</code> solver only. Sets the maximal reachability limit for computing isochrones. Zero means no limit. The default value is '0.0'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="match_graph_request"><span className="type-signature" />match\_graph\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Matches a directed route implied by a given set of latitude/longitude points to an existing underlying road network graph using a given solution type.
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, the <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a>, and/or some <a href="/content/guides/tags/graph-match" target="_top">/match/graph examples</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="modify_graph"><span className="type-signature" />modify\_graph<span className="signature">(graph\_name, nodes, edges, weights, restrictions, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Update an existing graph network using given nodes, edges, weights, restrictions, and options.
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, and <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>graph\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the graph resource to modify.</td>
          </tr>

          <tr>
            <td className="name"><code>nodes</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Nodes with which to update existing <code>nodes</code> in graph specified by <code>graph\_name</code>. Review <a href="/content/graph_solver/network_graph_solver/#nodes" target="_top">Nodes</a> for more information. Nodes must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS NODE\_ID', expressions, e.g., 'ST\_MAKEPOINT(column1, column2) AS NODE\_WKTPOINT', or raw values, e.g., '{"{"}9, 10, 11{"}"} AS NODE\_ID'. If using raw values in an identifier combination, the number of values specified must match across the combination. Identifier combination(s) do not have to match the method used to create the graph, e.g., if column names were specified to create the graph, expressions or raw values could also be used to modify the graph.</td>
          </tr>

          <tr>
            <td className="name"><code>edges</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Edges with which to update existing <code>edges</code> in graph specified by <code>graph\_name</code>. Review <a href="/content/graph_solver/network_graph_solver/#edges" target="_top">Edges</a> for more information. Edges must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS EDGE\_ID', expressions, e.g., 'SUBSTR(column, 1, 6) AS EDGE\_NODE1\_NAME', or raw values, e.g., "{"{"}'family', 'coworker'{"}"} AS EDGE\_LABEL". If using raw values in an identifier combination, the number of values specified must match across the combination. Identifier combination(s) do not have to match the method used to create the graph, e.g., if column names were specified to create the graph, expressions or raw values could also be used to modify the graph.</td>
          </tr>

          <tr>
            <td className="name"><code>weights</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Weights with which to update existing <code>weights</code> in graph specified by <code>graph\_name</code>. Review <a href="/content/graph_solver/network_graph_solver/#graph-weights" target="_top">Weights</a> for more information. Weights must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS WEIGHTS\_EDGE\_ID', expressions, e.g., 'ST\_LENGTH(wkt) AS WEIGHTS\_VALUESPECIFIED', or raw values, e.g., '{"{"}4, 15{"}"} AS WEIGHTS\_VALUESPECIFIED'. If using raw values in an identifier combination, the number of values specified must match across the combination. Identifier combination(s) do not have to match the method used to create the graph, e.g., if column names were specified to create the graph, expressions or raw values could also be used to modify the graph.</td>
          </tr>

          <tr>
            <td className="name"><code>restrictions</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Restrictions with which to update existing <code>restrictions</code> in graph specified by <code>graph\_name</code>. Review <a href="/content/graph_solver/network_graph_solver/#graph-restrictions" target="_top">Restrictions</a> for more information. Restrictions must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS RESTRICTIONS\_EDGE\_ID', expressions, e.g., 'column/2 AS RESTRICTIONS\_VALUECOMPARED', or raw values, e.g., '{"{"}0, 0, 0, 1{"}"} AS RESTRICTIONS\_ONOFFCOMPARED'. If using raw values in an identifier combination, the number of values specified must match across the combination. Identifier combination(s) do not have to match the method used to create the graph, e.g., if column names were specified to create the graph, expressions or raw values could also be used to modify the graph.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'restriction\_threshold\_value': Value-based restriction comparison. Any node or edge with a RESTRICTIONS\_VALUECOMPARED value greater than the <code>restriction\_threshold\_value</code> will not be included in the graph. </li>

                <li>
                  'export\_create\_results': If set to <code>true</code>, returns the graph topology in the response as arrays. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'enable\_graph\_draw': If set to <code>true</code>, adds a 'EDGE\_WKTLINE' column identifier to the specified <code>graph\_table</code> so the graph can be viewed via WMS; for social and non-geospatial graphs, the 'EDGE\_WKTLINE' column identifier will be populated with spatial coordinates derived from a flattening layout algorithm so the graph can still be viewed. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'save\_persist': If set to <code>true</code>, the graph will be saved in the persist directory (see the <a href="/content/config/" target="_top">config reference</a> for more information). If set to <code>false</code>, the graph will be removed when the graph server is shutdown. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'add\_table\_monitor': Adds a table monitor to every table used in the creation of the graph; this table monitor will trigger the graph to update dynamically upon inserts to the source table(s). Note that upon database restart, if <code>save\_persist</code> is also set to <code>true</code>, the graph will be fully reconstructed and the table monitors will be reattached. For more details on table monitors, see <a href="/content/api/nodejs/GPUdb#create_table_monitor"><code>GPUdb#create\_table\_monitor</code></a>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'graph\_table': If specified, the created graph is also created as a table with the given name, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. This table will have the following identifier columns: 'EDGE\_ID', 'EDGE\_NODE1\_ID', 'EDGE\_NODE2\_ID'. If left blank, no table is created. The default value is ''. </li>

                <li>
                  'remove\_label\_only': When RESTRICTIONS on labeled entities requested, if set to true this will NOT delete the entity but only the label associated with the entity. Otherwise (default), it'll delete the label AND the entity. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'add\_turns': Adds dummy 'pillowed' edges around intersection nodes where there are more than three edges so that additional weight penalties can be imposed by the solve endpoints. (increases the total number of edges). Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'turn\_angle': Value in degrees modifies the thresholds for attributing right, left, sharp turns, and intersections. It is the vertical deviation angle from the incoming edge to the intersection node. The larger the value, the larger the threshold for sharp turns and intersections; the smaller the value, the larger the threshold for right and left turns; 0 \< turn\_angle \< 90. The default value is '60'. </li>

                <li>
                  'use\_rtree': Use an range tree structure to accelerate and improve the accuracy of snapping, especially to edges. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'label\_delimiter': If provided the label string will be split according to this delimiter and each sub-string will be applied as a separate label onto the specified edge. The default value is ''. </li>

                <li>
                  'allow\_multiple\_edges': Multigraph choice; allowing multiple edges with the same node pairs if set to true, otherwise, new edges with existing same node pairs will not be inserted. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'embedding\_table': If table exists (should be generated by the match/graph match\_embedding solver), the vector embeddings for the newly inserted nodes will be appended into this table. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="modify_graph_request"><span className="type-signature" />modify\_graph\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Update an existing graph network using given nodes, edges, weights, restrictions, and options.
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, and <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="query_graph"><span className="type-signature" />query\_graph<span className="signature">(graph\_name, queries, restrictions, adjacency\_table, rings, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Employs a topological query on a graph generated a-priori by <a href="/content/api/nodejs/GPUdb#create_graph"><code>GPUdb#create\_graph</code></a> and returns a list of adjacent edge(s) or node(s), also known as an adjacency list, depending on what's been provided to the endpoint; providing edges will return nodes and providing nodes will return edges.
        <p> To determine the node(s) or edge(s) adjacent to a value from a given column, provide a list of values to <code>queries</code>. This field can be populated with column values from any table as long as the type is supported by the given identifier. See <a href="/content/graph_solver/network_graph_solver/#query-identifiers" target="_top">Query Identifiers</a> for more information. </p>
        <p> To return the adjacency list in the response, leave <code>adjacency\_table</code> empty. </p>
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, the <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a>, and/or some <a href="/content/guides/tags/graph-query" target="_top">/match/graph examples</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>graph\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the graph resource to query.</td>
          </tr>

          <tr>
            <td className="name"><code>queries</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Nodes or edges to be queried specified using <a href="/content/graph_solver/network_graph_solver/#query-identifiers" target="_top">query identifiers</a>. Identifiers can be used with existing column names, e.g., 'table.column AS QUERY\_NODE\_ID', raw values, e.g., '{"{"}0, 2{"}"} AS QUERY\_NODE\_ID', or expressions, e.g., 'ST\_MAKEPOINT(table.x, table.y) AS QUERY\_NODE\_WKTPOINT'. Multiple values can be provided as long as the same identifier is used for all values. If using raw values in an identifier combination, the number of values specified must match across the combination.</td>
          </tr>

          <tr>
            <td className="name"><code>restrictions</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Additional restrictions to apply to the nodes/edges of an existing graph. Restrictions must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS RESTRICTIONS\_EDGE\_ID', expressions, e.g., 'column/2 AS RESTRICTIONS\_VALUECOMPARED', or raw values, e.g., '{"{"}0, 0, 0, 1{"}"} AS RESTRICTIONS\_ONOFFCOMPARED'. If using raw values in an identifier combination, the number of values specified must match across the combination. The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>adjacency\_table</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to store the resulting adjacencies, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. If left blank, the query results are instead returned in the response. If the 'QUERY\_TARGET\_NODE\_LABEL' <a href="/content/graph_solver/network_graph_solver/#query-identifiers" target="_top">query identifier</a> is used in <code>queries</code>, then two additional columns will be available: 'PATH\_ID' and 'RING\_ID'. See <a href="/content/graph_solver/network_graph_solver/#using-labels" target="_top">Using Labels</a> for more information. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>rings</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Sets the number of rings around the node to query for adjacency, with '1' being the edges directly attached to the queried node. Also known as number of hops. For example, if it is set to '2', the edge(s) directly attached to the queried node(s) will be returned; in addition, the edge(s) attached to the node(s) attached to the initial ring of edge(s) surrounding the queried node(s) will be returned. If the value is set to '0', any nodes that meet the criteria in <code>queries</code> and <code>restrictions</code> will be returned. This parameter is only applicable when querying nodes. The default value is 1.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Additional parameters.

              <ul>
                <li>
                  'force\_undirected': If set to <code>true</code>, all inbound edges and outbound edges relative to the node will be returned. If set to <code>false</code>, only outbound edges relative to the node will be returned. This parameter is only applicable if the queried graph <code>graph\_name</code> is directed and when querying nodes. Consult <a href="/content/graph_solver/network_graph_solver/#directed-graphs" target="_top">Directed Graphs</a> for more details. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'limit': When specified (>0), limits the number of query results. The size of the nodes table will be limited by the <code>limit</code> value. The default value is '0'. </li>

                <li>
                  'output\_wkt\_path': If true then concatenated wkt line segments will be added as the WKT column of the adjacency table. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'and\_labels': If set to <code>true</code>, the result of the query has entities that satisfy all of the target labels, instead of any. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'server\_id': Indicates which graph server(s) to send the request to. Default is to send to the server, amongst those containing the corresponding graph, that has the most computational bandwidth. </li>
                <li>'output\_charn\_length': When specified (>0 and \<=256), limits the number of char length on the output tables for string based nodes. The default length is 64. The default value is '64'. </li>

                <li>
                  'find\_common\_labels': If set to true, for many-to-many queries or multi-level traversals, it lists the common labels between the source and target nodes and edge labels in each path. Otherwise (zero rings), it'll list all labels of the node(s) queried. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="query_graph_request"><span className="type-signature" />query\_graph\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Employs a topological query on a graph generated a-priori by <a href="/content/api/nodejs/GPUdb#create_graph"><code>GPUdb#create\_graph</code></a> and returns a list of adjacent edge(s) or node(s), also known as an adjacency list, depending on what's been provided to the endpoint; providing edges will return nodes and providing nodes will return edges.
        <p> To determine the node(s) or edge(s) adjacent to a value from a given column, provide a list of values to <code>queries</code>. This field can be populated with column values from any table as long as the type is supported by the given identifier. See <a href="/content/graph_solver/network_graph_solver/#query-identifiers" target="_top">Query Identifiers</a> for more information. </p>
        <p> To return the adjacency list in the response, leave <code>adjacency\_table</code> empty. </p>
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, the <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a>, and/or some <a href="/content/guides/tags/graph-query" target="_top">/match/graph examples</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="remove_http_header"><span className="type-signature" />remove\_http\_header<span className="signature">(header)</span><span className="type-signature" /></h4>

      <div className="description">
        Removes the given HTTP header from the map of additional HTTP headers to send to GPUdb with each request. The user is not allowed to remove the following protected headers:

        <ul>
          <li> 'Accept' </li>
          <li> 'Authorization' </li>
          <li> 'Content-type' </li>
          <li> 'X-Kinetica-Group' </li>
        </ul>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>header</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The header to remove.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h4 className="name" id="repartition_graph"><span className="type-signature" />repartition\_graph<span className="signature">(graph\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Rebalances an existing partitioned graph.
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, the <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a>, and/or some <a href="/content/guides/tags/graph" target="_top">graph examples</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>graph\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the graph resource to rebalance.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'new\_graph\_name': If a non-empty value is specified, the original graph will be kept (non-default behavior) and a new balanced graph will be created under this given name. When the value is empty (default), the generated 'balanced' graph will replace the original 'unbalanced' graph under the same graph name. The default value is ''. </li>
                <li>'source\_node': The distributed shortest path solve is run from this source node to all the nodes in the graph to create balanced partitions using the iso-distance levels of the solution. The source node is selected by the rebalance algorithm automatically (default case when the value is an empty string). Otherwise, the user specified node is used as the source. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="repartition_graph_request"><span className="type-signature" />repartition\_graph\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Rebalances an existing partitioned graph.
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, the <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a>, and/or some <a href="/content/guides/tags/graph" target="_top">graph examples</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="restore_backup"><span className="type-signature" />restore\_backup<span className="signature">(backup\_name, restore\_objects\_map, datasource\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Restores database objects from a <a href="/content/admin/backup_restore/#database-backup" target="_top">backup</a> accessible via the <a href="/content/concepts/data_sources/" target="_top">data source</a> specified by <code>datasource\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>backup\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the backup to restore from, which must refer to an existing backup. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>restore\_objects\_map</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Map of database objects to be restored from the backup.

              <ul>
                <li>'all': All object types and data contained in the given <a href="/content/concepts/schemas/" target="_top">schema(s)</a>. </li>
                <li>'context': <a href="/content/sql-gpt/concepts/#sql-gpt-context" target="_top">Context(s)</a>. </li>
                <li>'credential': <a href="/content/concepts/credentials/" target="_top">Credential(s)</a>. </li>
                <li>'datasink': <a href="/content/concepts/data_sinks/" target="_top">Data sink(s)</a>. </li>
                <li>'datasource': <a href="/content/concepts/data_sources/" target="_top">Data source(s)</a>. </li>
                <li>'function\_environment': <a href="/content/udf/python/writing/#udf-python-func-env" target="_top">Python UDF function environment(s)</a>. </li>
                <li>'graph': <a href="/content/graph_solver/network_graph_solver/" target="_top">Graph(s)</a> definition. </li>
                <li>'monitor': <a href="/content/concepts/table_monitors/" target="_top">Table monitor(s)</a> / <a href="/content/sql/ddl/#create-stream" target="_top">SQL stream(s)</a>. </li>
                <li>'resource\_group': <a href="/content/rm/concepts/#resource-groups" target="_top">Resource group(s)</a>. </li>
                <li>'role': <a href="/content/security/sec_concepts/#roles" target="_top">Role(s)</a>, role members (roles or users, recursively), and associated permissions. </li>
                <li>'stored\_procedure': <a href="/content/sql/procedure/" target="_top">SQL procedure(s)</a>. </li>
                <li>'table': <a href="/content/concepts/tables/" target="_top">Table(s)</a> and <a href="/content/sql/ddl/#create-view" target="_top">SQL view(s)</a>. Tables with subscriptions will by default be restored in the state they were in at the time of the snapshot. See <code>restore\_subscriptions</code> for options to override the default behavior. </li>
                <li>'user': <a href="/content/security/sec_concepts/#security-concepts-users" target="_top">User(s)</a> (internal and external) and associated permissions. </li>
                <li>'user\_defined\_function': <a href="/content/udf_overview" target="_top">UDF(s)</a>. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>datasource\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Data source through which the backup will be restored.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'backup\_id': ID of the snapshot to restore. Leave empty to restore the most recent snapshot in the backup. The default value is ''. </li>

                <li>
                  'checksum': Whether or not to verify checksums for backup files when restoring. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'create\_schema\_if\_not\_exist': Behavior to apply when the schema containing any database object to restore does not already exist. Supported values:

                  <ul>
                    <li>'true': If the schema containing any restored object does not exist, create it automatically. </li>
                    <li>'false': If the schema containing any restored object does not exist, return an error. </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'ddl\_only': Behavior to apply when restoring tables. Supported values:

                  <ul>
                    <li>'true': Restore table DDL, but do not restore data. </li>
                    <li>'false': Restore tables and their data. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'dry\_run': Whether or not to perform a dry run of the restoration operation. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'restore\_subscriptions': Behavior to apply when restoring datasource subscriptions on tables. Supported values:

                  <ul>
                    <li>'resume': Resume subscriptions that were active when the backup was made. </li>
                    <li>'pause': Pause subscriptions that were active when the backup was made. </li>
                    <li>'cancel': Cancel active subscriptions. </li>
                  </ul>

                  The default value is 'resume'.
                </li>

                <li>
                  'reingest': Behavior to apply when restoring table data. Supported values:

                  <ul>
                    <li>'true': Restore table data by re-ingesting it. This is the default behavior if the cluster topology differs from that of the contained backup. </li>
                    <li>'false': Restore the persisted data files directly. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'renamed\_objects\_schema': If the <code>restore\_policy</code> is <code>rename</code>, use this schema for relocated existing objects instead of the default generated one. The default value is ''. </li>

                <li>
                  'restore\_policy': Behavior to apply when any database object to restore already exists. Supported values:

                  <ul>
                    <li>'none': If an object to be restored already exists with the same name, abort and return error. </li>
                    <li>'replace': If an object to be restored already exists with the same name, replace it with the backup version. </li>
                    <li>'rename': If an object to be restored already exists with the same name, move that existing one to the schema specified by <code>renamed\_objects\_schema</code>. This policy does not apply to non-schema objects. </li>
                  </ul>

                  The default value is 'none'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="restore_backup_request"><span className="type-signature" />restore\_backup\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Restores database objects from a <a href="/content/admin/backup_restore/#database-backup" target="_top">backup</a> accessible via the <a href="/content/concepts/data_sources/" target="_top">data source</a> specified by <code>datasource\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission"><span className="type-signature" />revoke\_permission<span className="signature">(principal, object, object\_type, permission, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revoke user or role the specified permission on the specified object. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>principal</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role for which the permission is being revoked. Must be an existing user or role. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>object</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of object permission is being revoked from. It is recommended to use a fully-qualified name when possible.</td>
          </tr>

          <tr>
            <td className="name"><code>object\_type</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              The type of object being revoked. Supported values:

              <ul>
                <li>'catalog': Catalog </li>
                <li>'context': Context </li>
                <li>'credential': Credential </li>
                <li>'datasink': Data Sink </li>
                <li>'datasource': Data Source </li>
                <li>'directory': KIFS File Directory </li>
                <li>'graph': A Graph object </li>
                <li>'proc': UDF Procedure </li>
                <li>'schema': Schema </li>
                <li>'sql\_proc': SQL Procedure </li>
                <li>'system': System-level access </li>
                <li>'table': Database Table </li>
                <li>'table\_monitor': Table monitor </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission being revoked. Supported values:

              <ul>
                <li>'admin': Full read/write and administrative access on the object. </li>
                <li>'connect': Connect access on the given data source or data sink. </li>
                <li>'create': Ability to create new objects of this type. </li>
                <li>'delete': Delete rows from tables. </li>
                <li>'execute': Ability to Execute the Procedure object. </li>
                <li>'insert': Insert access to tables. </li>
                <li>'monitor': Monitor logs and statistics. </li>
                <li>'read': Ability to read, list and use the object. </li>
                <li>'send\_alert': Ability to send system alerts. </li>
                <li>'update': Update access to the table. </li>
                <li>'user\_admin': Access to administer users and roles that do not have system\_admin permission. </li>
                <li>'write': Access to write, change and delete objects. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'columns': Revoke table security from these columns, comma-separated. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_credential"><span className="type-signature" />revoke\_permission\_credential<span className="signature">(name, permission, credential\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a <a href="/content/security/sec_concepts/#security-concepts-permissions-credential" target="_top">credential-level permission</a> from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role from which the permission will be revoked. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to revoke from the user or role. Supported values:

              <ul>
                <li>'credential\_admin': Full read/write and administrative access on the credential. </li>
                <li>'credential\_read': Ability to read and use the credential. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>credential\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the credential on which the permission will be revoked. Must be an existing credential, or an empty string to revoke access on all credentials.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_credential_request"><span className="type-signature" />revoke\_permission\_credential\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a <a href="/content/security/sec_concepts/#security-concepts-permissions-credential" target="_top">credential-level permission</a> from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_datasource"><span className="type-signature" />revoke\_permission\_datasource<span className="signature">(name, permission, datasource\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a <a href="/content/concepts/data_sources/" target="_top">data source</a> permission from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role from which the permission will be revoked. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to revoke from the user or role. Supported values:

              <ul>
                <li>'admin': Admin access on the given data source. </li>
                <li>'connect': Connect access on the given data source. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>datasource\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the data source on which the permission will be revoked. Must be an existing data source, or an empty string to revoke permission from all data sources.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_datasource_request"><span className="type-signature" />revoke\_permission\_datasource\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a <a href="/content/concepts/data_sources/" target="_top">data source</a> permission from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_directory"><span className="type-signature" />revoke\_permission\_directory<span className="signature">(name, permission, directory\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a <a href="/content/tools/kifs/" target="_top">KiFS</a> directory-level permission from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role from which the permission will be revoked. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to revoke from the user or role. Supported values:

              <ul>
                <li>'directory\_read': For files in the directory, access to list files, download files, or use files in server side functions. </li>
                <li>'directory\_write': Access to upload files to, or delete files from, the directory. A user or role with write access automatically has read access. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>directory\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the KiFS directory to which the permission revokes access.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_directory_request"><span className="type-signature" />revoke\_permission\_directory\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a <a href="/content/tools/kifs/" target="_top">KiFS</a> directory-level permission from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_proc"><span className="type-signature" />revoke\_permission\_proc<span className="signature">(name, permission, proc\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a proc-level permission from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role from which the permission will be revoked. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to revoke from the user or role. Supported values:

              <ul>
                <li>'proc\_admin': Admin access to the proc. </li>
                <li>'proc\_execute': Execute access to the proc. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>proc\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the proc to which the permission grants access. Must be an existing proc, or an empty string if the permission grants access to all procs.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_proc_request"><span className="type-signature" />revoke\_permission\_proc\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a proc-level permission from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_request"><span className="type-signature" />revoke\_permission\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revoke user or role the specified permission on the specified object. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_system"><span className="type-signature" />revoke\_permission\_system<span className="signature">(name, permission, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a system-level permission from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role from which the permission will be revoked. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to revoke from the user or role. Supported values:

              <ul>
                <li>'system\_admin': Full access to all data and system functions. </li>
                <li>'system\_user\_admin': Access to administer users and roles that do not have system\_admin permission. </li>
                <li>'system\_write': Read and write access to all tables. </li>
                <li>'system\_read': Read-only access to all tables. </li>
                <li>'system\_send\_alert': Send system alerts. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_system_request"><span className="type-signature" />revoke\_permission\_system\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a system-level permission from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_table"><span className="type-signature" />revoke\_permission\_table<span className="signature">(name, permission, table\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a table-level permission from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role from which the permission will be revoked. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>permission</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              Permission to revoke from the user or role. Supported values:

              <ul>
                <li>'table\_admin': Full read/write and administrative access to the table. </li>
                <li>'table\_insert': Insert access to the table. </li>
                <li>'table\_update': Update access to the table. </li>
                <li>'table\_delete': Delete access to the table. </li>
                <li>'table\_read': Read access to the table. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to which the permission grants access, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be an existing table, view or schema.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'columns': Apply security to these columns, comma-separated. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_permission_table_request"><span className="type-signature" />revoke\_permission\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes a table-level permission from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_role"><span className="type-signature" />revoke\_role<span className="signature">(role, member, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes membership in a role from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>role</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the role in which membership will be revoked. Must be an existing role.</td>
          </tr>

          <tr>
            <td className="name"><code>member</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the user or role that will be revoked membership in <code>role</code>. Must be an existing user or role.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="revoke_role_request"><span className="type-signature" />revoke\_role\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Revokes membership in a role from a user or role. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_backup"><span className="type-signature" />show\_backup<span className="signature">(backup\_name, datasource\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about one or more <a href="/content/admin/backup_restore/#database-backup" target="_top">backups</a> accessible via the <a href="/content/concepts/data_sources/" target="_top">data source</a> specified by <code>datasource\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>backup\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the backup. An empty string or '\*' will show all existing backups. Any text followed by a '\*' will show backups whose name starts with that text. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>datasource\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Data source through which the backup is accessible.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'backup\_id': ID of the snapshot to show. Leave empty to show information from the most recent snapshot in the backup. The default value is ''. </li>

                <li>
                  'backup\_type': Show backups by type. This option is ignored if <code>backup\_id</code> is non-empty. Supported values:

                  <ul>
                    <li>'all': Show all backup types. </li>
                    <li>'full': Show full backups only. </li>
                    <li>'incremental': Show incremental backups only. </li>
                    <li>'differential': Show differential backups only. </li>
                  </ul>

                  The default value is 'all'.
                </li>

                <li>
                  'show\_contents': Show the contents of the backed-up snapshots. Supported values:

                  <ul>
                    <li>'none': Don't show snapshot contents. </li>
                    <li>'object\_names': Show backed-up object names, and for tables, sizing detail. </li>
                    <li>'object\_files': Show backed-up object names, and for tables, sizing detail and associated files. </li>
                  </ul>

                  The default value is 'none'.
                </li>

                <li>
                  'no\_error\_if\_not\_exists': Whether or not to suppress the error if the specified backup does not exist. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_backup_request"><span className="type-signature" />show\_backup\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about one or more <a href="/content/admin/backup_restore/#database-backup" target="_top">backups</a> accessible via the <a href="/content/concepts/data_sources/" target="_top">data source</a> specified by <code>datasource\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_credential"><span className="type-signature" />show\_credential<span className="signature">(credential\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about a specified <a href="/content/concepts/credentials/" target="_top">credential</a> or all credentials. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>credential\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the credential on which to retrieve information. The name must refer to a currently existing credential. If '\*' is specified, information about all credentials will be returned.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_credential_request"><span className="type-signature" />show\_credential\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about a specified <a href="/content/concepts/credentials/" target="_top">credential</a> or all credentials. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_datasink"><span className="type-signature" />show\_datasink<span className="signature">(name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about a specified <a href="/content/concepts/data_sinks/" target="_top">data sink</a> or all data sinks. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the data sink for which to retrieve information. The name must refer to a currently existing data sink. If '\*' is specified, information about all data sinks will be returned.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_datasink_request"><span className="type-signature" />show\_datasink\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about a specified <a href="/content/concepts/data_sinks/" target="_top">data sink</a> or all data sinks. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_datasource"><span className="type-signature" />show\_datasource<span className="signature">(name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about a specified <a href="/content/concepts/data_sources/" target="_top">data source</a> or all data sources. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the data source for which to retrieve information. The name must refer to a currently existing data source. If '\*' is specified, information about all data sources will be returned.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_datasource_request"><span className="type-signature" />show\_datasource\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about a specified <a href="/content/concepts/data_sources/" target="_top">data source</a> or all data sources. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_directories"><span className="type-signature" />show\_directories<span className="signature">(directory\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about directories in <a href="/content/tools/kifs/" target="_top">KiFS</a>. Can be used to show a single directory, or all directories. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>directory\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The KiFS directory name to show. If empty, shows all directories. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_directories_request"><span className="type-signature" />show\_directories\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about directories in <a href="/content/tools/kifs/" target="_top">KiFS</a>. Can be used to show a single directory, or all directories. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_environment"><span className="type-signature" />show\_environment<span className="signature">(environment\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about a specified <a href="/content/concepts/udf/" target="_top">user-defined function</a> (UDF) environment or all environments. Returns detailed information about existing environments. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>environment\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the environment on which to retrieve information. The name must refer to a currently existing environment. If '\*' or an empty value is specified, information about all environments will be returned. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_not\_exists': If <code>true</code> and if the environment specified in <code>environment\_name</code> does not exist, no error is returned. If <code>false</code> and if the environment specified in <code>environment\_name</code> does not exist, then an error is returned. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'show\_names\_only': If <code>true</code> only return the names of the installed environments and omit package listing. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_environment_request"><span className="type-signature" />show\_environment\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about a specified <a href="/content/concepts/udf/" target="_top">user-defined function</a> (UDF) environment or all environments. Returns detailed information about existing environments. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_files"><span className="type-signature" />show\_files<span className="signature">(paths, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about files in <a href="/content/tools/kifs/" target="_top">KiFS</a>. Can be used for individual files, or to show all files in a given directory. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>paths</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">File paths to show. Each path can be a KiFS directory name, or a full path to a KiFS file. File paths may contain wildcard characters after the KiFS directory delimiter. Accepted wildcard characters are asterisk (\*) to represent any string of zero or more characters, and question mark (?) to indicate a single character.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_files_request"><span className="type-signature" />show\_files\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about files in <a href="/content/tools/kifs/" target="_top">KiFS</a>. Can be used for individual files, or to show all files in a given directory. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_graph"><span className="type-signature" />show\_graph<span className="signature">(graph\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information and characteristics of graphs that exist on the graph server. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>graph\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the graph on which to retrieve information. If left as the default value, information about all graphs is returned. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'show\_original\_request': If set to <code>true</code>, the request that was originally used to create the graph is also returned as JSON. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'server\_id': Indicates which graph server(s) to send the request to. Default is to send to get information about all the servers. </li>

                <li>
                  'export\_graph\_schema': If true, generates the graph ontology (schema) as a DOT format string in the response info field under the key 'dot'. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_graph_request"><span className="type-signature" />show\_graph\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information and characteristics of graphs that exist on the graph server. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_proc"><span className="type-signature" />show\_proc<span className="signature">(proc\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about a proc. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>proc\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the proc to show information about. If specified, must be the name of a currently existing proc. If not specified, information about all procs will be returned. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'include\_files': If set to <code>true</code>, the files that make up the proc will be returned. If set to <code>false</code>, the files will not be returned. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_proc_request"><span className="type-signature" />show\_proc\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about a proc. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_proc_status"><span className="type-signature" />show\_proc\_status<span className="signature">(run\_id, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows the statuses of running or completed proc instances. Results are grouped by run ID (as returned from <a href="/content/api/nodejs/GPUdb#execute_proc"><code>GPUdb#execute\_proc</code></a>) and data segment ID (each invocation of the proc command on a data segment is assigned a data segment ID). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>run\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">The run ID of a specific proc instance for which the status will be returned. If a proc with a matching run ID is not found, the response will be empty. If not specified, the statuses of all executed proc instances will be returned. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'clear\_complete': If set to <code>true</code>, if a proc instance has completed (either successfully or unsuccessfully) then its status will be cleared and no longer returned in subsequent calls. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'run\_tag': If <code>run\_id</code> is specified, return the status for a proc instance that has a matching run ID and a matching run tag that was provided to <a href="/content/api/nodejs/GPUdb#execute_proc"><code>GPUdb#execute\_proc</code></a>. If <code>run\_id</code> is not specified, return statuses for all proc instances where a matching run tag was provided to <a href="/content/api/nodejs/GPUdb#execute_proc"><code>GPUdb#execute\_proc</code></a>. The default value is ''. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_proc_status_request"><span className="type-signature" />show\_proc\_status\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows the statuses of running or completed proc instances. Results are grouped by run ID (as returned from <a href="/content/api/nodejs/GPUdb#execute_proc"><code>GPUdb#execute\_proc</code></a>) and data segment ID (each invocation of the proc command on a data segment is assigned a data segment ID). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_resource_groups"><span className="type-signature" />show\_resource\_groups<span className="signature">(names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Requests resource group properties. Returns detailed information about the requested resource groups. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of names of groups to be shown. A single entry with an empty string returns all groups.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'show\_default\_values': If <code>true</code> include values of fields that are based on the default resource group. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'show\_default\_group': If <code>true</code> include the default and system resource groups in the response. This value defaults to false if an explicit list of group names is provided, and true otherwise. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'show\_tier\_usage': If <code>true</code> include the resource group usage on the worker ranks in the response. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_resource_groups_request"><span className="type-signature" />show\_resource\_groups\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Requests resource group properties. Returns detailed information about the requested resource groups. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_resource_objects"><span className="type-signature" />show\_resource\_objects<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Returns information about the internal sub-components (tiered objects) which use resources of the system. The request can either return results from actively used objects (default) or it can be used to query the status of the objects of a given list of tables. Returns detailed information about the requested resource objects. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'tiers': Comma-separated list of tiers to query, leave blank for all tiers. </li>
                <li>'expression': An expression to filter the returned objects. Expression is limited to the following operators: =,!=,\<,\<=,>,>=,+,-,\*,AND,OR,LIKE. For details see <a href="/content/concepts/expressions/" target="_top">Expressions</a>. To use a more complex expression, query the ki\_catalog.ki\_tiered\_objects table directly. </li>

                <li>
                  'order\_by': Single column to be sorted by as well as the sort direction, e.g., 'size asc'. Supported values:

                  <ul>
                    <li>'size' </li>
                    <li>'id' </li>
                    <li>'priority' </li>
                    <li>'tier' </li>
                    <li>'evictable' </li>
                    <li>'locked' </li>
                    <li>'pin\_count' </li>
                    <li>'ram\_evictions' </li>
                    <li>'persist\_evictions' </li>
                    <li>'owner\_resource\_group' </li>
                  </ul>
                </li>

                <li>'limit': An integer indicating the maximum number of results to be returned, per rank, or (-1) to indicate that the maximum number of results allowed by the server should be returned. The number of records returned will never exceed the server's own limit, defined by the <a href="/content/config/#config-main-general" target="_top">max\_get\_records\_size</a> parameter in the server configuration. The default value is '100'. </li>
                <li>'table\_names': Comma-separated list of tables to restrict the results to. Use '\*' to show all tables. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_resource_objects_request"><span className="type-signature" />show\_resource\_objects\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Returns information about the internal sub-components (tiered objects) which use resources of the system. The request can either return results from actively used objects (default) or it can be used to query the status of the objects of a given list of tables. Returns detailed information about the requested resource objects. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_resource_statistics"><span className="type-signature" />show\_resource\_statistics<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Requests various statistics for storage/memory tiers and resource groups. Returns statistics on a per-rank basis. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_resource_statistics_request"><span className="type-signature" />show\_resource\_statistics\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Requests various statistics for storage/memory tiers and resource groups. Returns statistics on a per-rank basis. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_schema"><span className="type-signature" />show\_schema<span className="signature">(schema\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves information about a <a href="/content/concepts/schemas/" target="_top">schema</a> (or all schemas), as specified in <code>schema\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>schema\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the schema for which to retrieve the information. If blank, then info for all schemas is returned.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_not\_exists': If <code>false</code> will return an error if the provided <code>schema\_name</code> does not exist. If <code>true</code> then it will return an empty result if the provided <code>schema\_name</code> does not exist. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_schema_request"><span className="type-signature" />show\_schema\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves information about a <a href="/content/concepts/schemas/" target="_top">schema</a> (or all schemas), as specified in <code>schema\_name</code>. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_security"><span className="type-signature" />show\_security<span className="signature">(names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows security information relating to users and/or roles. If the caller is not a system administrator, only information relating to the caller and their roles is returned. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">A list of names of users and/or roles about which security information is requested. If none are provided, information about all users and roles will be returned.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'show\_current\_user': If <code>true</code>, returns only security information for the current user. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_security_request"><span className="type-signature" />show\_security\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows security information relating to users and/or roles. If the caller is not a system administrator, only information relating to the caller and their roles is returned. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_sql_proc"><span className="type-signature" />show\_sql\_proc<span className="signature">(procedure\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about SQL procedures, including the full definition of each requested procedure. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>procedure\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the procedure for which to retrieve the information. If blank, then information about all procedures is returned. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_not\_exists': If <code>true</code>, no error will be returned if the requested procedure does not exist. If <code>false</code>, an error will be returned if the requested procedure does not exist. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_sql_proc_request"><span className="type-signature" />show\_sql\_proc\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Shows information about SQL procedures, including the full definition of each requested procedure. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_statistics"><span className="type-signature" />show\_statistics<span className="signature">(table\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves the collected column statistics for the specified table(s). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Names of tables whose metadata will be fetched, each in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. All provided tables must exist, or an error is returned. A single entry of '\*' expands to every user table the caller may read (excluding system schemas, views, and temporary tables); when used it must be the only entry.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_error\_if\_not\_exists': If <code>true</code> and if the table names specified in <code>table\_names</code> does not exist, no error is returned. If <code>false</code> and if the table names specified in <code>table\_names</code> does not exist, then an error is returned. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'column\_names': Columns, per table in <code>table\_names</code>, to collect statistics for when @{"{"}input.key options.collect\_now{"}"} is <code>true</code>; ignored otherwise. Encoded as a ';'-separated parallel array aligned with <code>table\_names</code> (e.g. 'x,y;z' requests columns x,y for the first table and z for the second). A value of '\*' expands to every collectable column on each table (geometry, vector, JSON, and array columns are skipped). An explicit list may not be combined with a '\*' table\_names wildcard. The default value is ''. </li>

                <li>
                  'collect\_now': If <code>true</code>, the columns named by @{"{"}input.key options.column\_names{"}"} are collected synchronously during this request and reflected in the response. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_statistics_request"><span className="type-signature" />show\_statistics\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves the collected column statistics for the specified table(s). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_system_properties"><span className="type-signature" />show\_system\_properties<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Returns server configuration and version related information to the caller. The admin tool uses it to present server related information to the user. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'properties': A list of comma separated names of properties requested. If not specified, all properties will be returned. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_system_properties_request"><span className="type-signature" />show\_system\_properties\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Returns server configuration and version related information to the caller. The admin tool uses it to present server related information to the user. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_system_status"><span className="type-signature" />show\_system\_status<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Provides server configuration and health related status to the caller. The admin tool uses it to present server related information to the user. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters, currently unused. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_system_status_request"><span className="type-signature" />show\_system\_status\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Provides server configuration and health related status to the caller. The admin tool uses it to present server related information to the user. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_system_timing"><span className="type-signature" />show\_system\_timing<span className="signature">(options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Returns the last 100 database requests along with the request timing and internal job ID. The admin tool uses it to present request timing information to the user. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters, currently unused. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_system_timing_request"><span className="type-signature" />show\_system\_timing\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Returns the last 100 database requests along with the request timing and internal job ID. The admin tool uses it to present request timing information to the user. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_table"><span className="type-signature" />show\_table<span className="signature">(table\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Retrieves detailed information about a table, view, or schema, specified in <code>table\_name</code>. If the supplied <code>table\_name</code> is a schema the call can return information about either the schema itself or the tables and views it contains. If <code>table\_name</code> is empty, information about all schemas will be returned.
        <p> If the option <code>get\_sizes</code> is set to <code>true</code>, then the number of records in each table is returned (in <code>sizes</code> and <code>full\_sizes</code>), along with the total number of objects across all requested tables (in <code>total\_size</code> and <code>total\_full\_size</code>). </p>
        <p> For a schema, setting the <code>show\_children</code> option to <code>false</code> returns only information about the schema itself; setting <code>show\_children</code> to <code>true</code> returns a list of tables and views contained in the schema, along with their corresponding detail. </p>
        <p> To retrieve a list of every table, view, and schema in the database, set <code>table\_name</code> to '\*' and <code>show\_children</code> to <code>true</code>. When doing this, the returned <code>total\_size</code> and <code>total\_full\_size</code> will not include the sizes of non-base tables (e.g., filters, views, joins, etc.). </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table for which to retrieve the information, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. If blank, then returns information about all tables and views.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'dependencies': Include view dependencies in the output. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'force\_synchronous': If <code>true</code> then the table sizes will wait for read lock before returning. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'get\_access\_data': If <code>true</code> then data about the last read, write, alter and create will be returned. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'get\_cached\_sizes': If <code>true</code> then the number of records in each table, along with a cumulative count, will be returned; blank, otherwise. This version will return the sizes cached at rank 0, which may be stale if there is a multihead insert occurring. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'get\_sizes': If <code>true</code> then the number of records in each table, along with a cumulative count, will be returned; blank, otherwise. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'referencing\_materialized\_views': Include materialized views using this table as a source in the output. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'skip\_additional\_info': If <code>true</code> then the response will not populate the additional\_info field. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'no\_error\_if\_not\_exists': If <code>false</code> will return an error if the provided <code>table\_name</code> does not exist. If <code>true</code> then it will return an empty result. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'skip\_temp\_schemas': If <code>true</code> then the table list will not include tables from SYS\_TEMP and other system temporary schemas. This is the default behavior for non-admin users. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'show\_children': If <code>table\_name</code> is a schema, then <code>true</code> will return information about the tables and views in the schema, and <code>false</code> will return information about the schema itself. If <code>table\_name</code> is a table or view, <code>show\_children</code> must be <code>false</code>. If <code>table\_name</code> is empty, then <code>show\_children</code> must be <code>true</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'get\_column\_info': If <code>true</code> then column info (memory usage, etc) will be returned. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_table_metadata"><span className="type-signature" />show\_table\_metadata<span className="signature">(table\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves the user provided metadata for the specified tables. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Names of tables whose metadata will be fetched, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. All provided tables must exist, or an error is returned.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_table_metadata_request"><span className="type-signature" />show\_table\_metadata\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves the user provided metadata for the specified tables. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_table_monitors"><span className="type-signature" />show\_table\_monitors<span className="signature">(monitor\_ids, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Show table monitors and their properties. Table monitors are created using <a href="/content/api/nodejs/GPUdb#create_table_monitor"><code>GPUdb#create\_table\_monitor</code></a>. Returns detailed information about existing table monitors. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>monitor\_ids</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of monitors to be shown. An empty list or a single entry with an empty string returns all table monitors.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_table_monitors_request"><span className="type-signature" />show\_table\_monitors\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Show table monitors and their properties. Table monitors are created using <a href="/content/api/nodejs/GPUdb#create_table_monitor"><code>GPUdb#create\_table\_monitor</code></a>. Returns detailed information about existing table monitors. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_table_request"><span className="type-signature" />show\_table\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Retrieves detailed information about a table, view, or schema, specified in <code>table\_name</code>. If the supplied <code>table\_name</code> is a schema the call can return information about either the schema itself or the tables and views it contains. If <code>table\_name</code> is empty, information about all schemas will be returned.
        <p> If the option <code>get\_sizes</code> is set to <code>true</code>, then the number of records in each table is returned (in <code>sizes</code> and <code>full\_sizes</code>), along with the total number of objects across all requested tables (in <code>total\_size</code> and <code>total\_full\_size</code>). </p>
        <p> For a schema, setting the <code>show\_children</code> option to <code>false</code> returns only information about the schema itself; setting <code>show\_children</code> to <code>true</code> returns a list of tables and views contained in the schema, along with their corresponding detail. </p>
        <p> To retrieve a list of every table, view, and schema in the database, set <code>table\_name</code> to '\*' and <code>show\_children</code> to <code>true</code>. When doing this, the returned <code>total\_size</code> and <code>total\_full\_size</code> will not include the sizes of non-base tables (e.g., filters, views, joins, etc.). </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_tables_by_type"><span className="type-signature" />show\_tables\_by\_type<span className="signature">(type\_id, label, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Gets names of the tables whose type matches the given criteria. Each table has a particular type. This type comprises the schema and properties of the table and sometimes a type label. This function allows a look up of the existing tables based on full or partial type information. The operation is synchronous. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>type\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Type id returned by a call to <a href="/content/api/nodejs/GPUdb#create_type"><code>GPUdb#create\_type</code></a>.</td>
          </tr>

          <tr>
            <td className="name"><code>label</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Optional user supplied label which can be used instead of the type\_id to retrieve all tables with the given label.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_tables_by_type_request"><span className="type-signature" />show\_tables\_by\_type\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Gets names of the tables whose type matches the given criteria. Each table has a particular type. This type comprises the schema and properties of the table and sometimes a type label. This function allows a look up of the existing tables based on full or partial type information. The operation is synchronous. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_triggers"><span className="type-signature" />show\_triggers<span className="signature">(trigger\_ids, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves information regarding the specified triggers or all existing triggers currently active. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>trigger\_ids</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of IDs of the triggers whose information is to be retrieved. An empty list means information will be retrieved on all active triggers.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_triggers_request"><span className="type-signature" />show\_triggers\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves information regarding the specified triggers or all existing triggers currently active. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_types"><span className="type-signature" />show\_types<span className="signature">(type\_id, label, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves information for the specified data type ID or type label. For all data types that match the input criteria, the database returns the type ID, the type schema, the label (if available), and the type's column properties. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>type\_id</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Type Id returned in response to a call to <a href="/content/api/nodejs/GPUdb#create_type"><code>GPUdb#create\_type</code></a>.</td>
          </tr>

          <tr>
            <td className="name"><code>label</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Option string that was supplied by user in a call to <a href="/content/api/nodejs/GPUdb#create_type"><code>GPUdb#create\_type</code></a>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'no\_join\_types': When set to 'true', no join types will be included. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_types_request"><span className="type-signature" />show\_types\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves information for the specified data type ID or type label. For all data types that match the input criteria, the database returns the type ID, the type schema, the label (if available), and the type's column properties. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_video"><span className="type-signature" />show\_video<span className="signature">(paths, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves information about rendered videos. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>paths</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">The fully-qualified <a href="/content/tools/kifs/" target="_top">KiFS</a> paths for the videos to show. If empty, shows all videos.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_video_request"><span className="type-signature" />show\_video\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Retrieves information about rendered videos. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_wal"><span className="type-signature" />show\_wal<span className="signature">(table\_names, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Requests table write-ahead log (WAL) properties. Returns information about the requested table WAL entries. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of tables to query. An asterisk returns all tables.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'show\_settings': If <code>true</code> include a map of the WAL settings for the requested tables. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="show_wal_request"><span className="type-signature" />show\_wal\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Requests table write-ahead log (WAL) properties. Returns information about the requested table WAL entries. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="solve_graph"><span className="type-signature" />solve\_graph<span className="signature">(graph\_name, weights\_on\_edges, restrictions, solver\_type, source\_nodes, destination\_nodes, solution\_table, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Solves an existing graph for a type of problem (e.g., shortest path, page rank, traveling salesman, etc.) using source nodes, destination nodes, and additional, optional weights and restrictions.
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, the <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a>, and/or some <a href="/content/guides/tags/graph-solve" target="_top">/solve/graph examples</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>graph\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the graph resource to solve.</td>
          </tr>

          <tr>
            <td className="name"><code>weights\_on\_edges</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Additional weights to apply to the edges of an existing graph. Weights must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS WEIGHTS\_EDGE\_ID', expressions, e.g., 'ST\_LENGTH(wkt) AS WEIGHTS\_VALUESPECIFIED', or constant values, e.g., '{"{"}4, 15, 2{"}"} AS WEIGHTS\_VALUESPECIFIED'. Any provided weights will be added (in the case of 'WEIGHTS\_VALUESPECIFIED') to or multiplied with (in the case of 'WEIGHTS\_FACTORSPECIFIED') the existing weight(s). If using constant values in an identifier combination, the number of values specified must match across the combination. The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>restrictions</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Additional restrictions to apply to the nodes/edges of an existing graph. Restrictions must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS RESTRICTIONS\_EDGE\_ID', expressions, e.g., 'column/2 AS RESTRICTIONS\_VALUECOMPARED', or constant values, e.g., '{"{"}0, 0, 0, 1{"}"} AS RESTRICTIONS\_ONOFFCOMPARED'. If using constant values in an identifier combination, the number of values specified must match across the combination. If remove\_previous\_restrictions option is set to true, any provided restrictions will replace the existing restrictions. Otherwise, any provided restrictions will be added (in the case of 'RESTRICTIONS\_VALUECOMPARED') to or replaced (in the case of 'RESTRICTIONS\_ONOFFCOMPARED'). The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>solver\_type</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="description last">
              The type of solver to use for the graph. Supported values:

              <ul>
                <li>'SHORTEST\_PATH': Solves for the optimal (shortest) path based on weights and restrictions from one source to destinations nodes. Also known as the Dijkstra solver. </li>
                <li>'PAGE\_RANK': Solves for the probability of each destination node being visited based on the links of the graph topology. Weights are not required to use this solver. </li>
                <li>'PROBABILITY\_RANK': Solves for the transitional probability (Hidden Markov) for each node based on the weights (probability assigned over given edges). </li>
                <li>'CENTRALITY': Solves for the degree of a node to depict how many pairs of individuals that would have to go through the node to reach one another in the minimum number of hops. Also known as betweenness. </li>
                <li>'MULTIPLE\_ROUTING': Solves for finding the minimum cost cumulative path for a round-trip starting from the given source and visiting each given destination node once then returning to the source. Also known as the traveling salesman problem. </li>
                <li>'INVERSE\_SHORTEST\_PATH': Solves for finding the optimal path cost for each destination node to route to the source node. Also known as inverse Dijkstra or the service man routing problem. </li>
                <li>'BACKHAUL\_ROUTING': Solves for optimal routes that connect remote asset nodes to the fixed (backbone) asset nodes. </li>
                <li>'ALLPATHS': Solves for paths that would give costs between max and min solution radia - Make sure to limit by the 'max\_solution\_targets' option. Min cost should be >= shortest\_path cost. </li>
                <li>'STATS\_ALL': Solves for graph statistics such as graph diameter, longest pairs, vertex valences, topology numbers, average and max cluster sizes, etc. </li>
                <li>'CLOSENESS': Solves for the centrality closeness score per node as the sum of the inverse shortest path costs to all nodes in the graph. </li>
              </ul>

              The default value is 'SHORTEST\_PATH'.
            </td>
          </tr>

          <tr>
            <td className="name"><code>source\_nodes</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">It can be one of the nodal identifiers - e.g: 'NODE\_WKTPOINT' for source nodes. For <code>BACKHAUL\_ROUTING</code>, this list depicts the fixed assets. The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>destination\_nodes</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">It can be one of the nodal identifiers - e.g: 'NODE\_WKTPOINT' for destination (target) nodes. For <code>BACKHAUL\_ROUTING</code>, this list depicts the remote assets. The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>solution\_table</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to store the solution, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. The default value is 'graph\_solutions'.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Additional parameters.

              <ul>
                <li>'max\_solution\_radius': For <code>ALLPATHS</code>, <code>SHORTEST\_PATH</code> and <code>INVERSE\_SHORTEST\_PATH</code> solvers only. Sets the maximum solution cost radius, which ignores the <code>destination\_nodes</code> list and instead outputs the nodes within the radius sorted by ascending cost. If set to '0.0', the setting is ignored. The default value is '0.0'. </li>
                <li>'min\_solution\_radius': For <code>ALLPATHS</code>, <code>SHORTEST\_PATH</code> and <code>INVERSE\_SHORTEST\_PATH</code> solvers only. Applicable only when <code>max\_solution\_radius</code> is set. Sets the minimum solution cost radius, which ignores the <code>destination\_nodes</code> list and instead outputs the nodes within the radius sorted by ascending cost. If set to '0.0', the setting is ignored. The default value is '0.0'. </li>
                <li>'max\_solution\_targets': For <code>ALLPATHS</code>, <code>SHORTEST\_PATH</code> and <code>INVERSE\_SHORTEST\_PATH</code> solvers only. Sets the maximum number of solution targets, which ignores the <code>destination\_nodes</code> list and instead outputs no more than n number of nodes sorted by ascending cost where n is equal to the setting value. If set to 0, the setting is ignored. The default value is '1000'. </li>
                <li>'uniform\_weights': When specified, assigns the given value to all the edges in the graph. Note that weights provided in <code>weights\_on\_edges</code> will override this value. </li>
                <li>'left\_turn\_penalty': This will add an additional weight over the edges labeled as 'left turn' if the 'add\_turn' option parameter of the <a href="/content/api/nodejs/GPUdb#create_graph"><code>GPUdb#create\_graph</code></a> was invoked at graph creation. The default value is '0.0'. </li>
                <li>'right\_turn\_penalty': This will add an additional weight over the edges labeled as' right turn' if the 'add\_turn' option parameter of the <a href="/content/api/nodejs/GPUdb#create_graph"><code>GPUdb#create\_graph</code></a> was invoked at graph creation. The default value is '0.0'. </li>
                <li>'intersection\_penalty': This will add an additional weight over the edges labeled as 'intersection' if the 'add\_turn' option parameter of the <a href="/content/api/nodejs/GPUdb#create_graph"><code>GPUdb#create\_graph</code></a> was invoked at graph creation. The default value is '0.0'. </li>
                <li>'sharp\_turn\_penalty': This will add an additional weight over the edges labeled as 'sharp turn' or 'u-turn' if the 'add\_turn' option parameter of the <a href="/content/api/nodejs/GPUdb#create_graph"><code>GPUdb#create\_graph</code></a> was invoked at graph creation. The default value is '0.0'. </li>
                <li>'num\_best\_paths': For <code>MULTIPLE\_ROUTING</code> solvers only; sets the number of shortest paths computed from each node. This is the heuristic criterion. Default value of zero allows the number to be computed automatically by the solver. The user may want to override this parameter to speed-up the solver. The default value is '0'. </li>
                <li>'max\_num\_combinations': For <code>MULTIPLE\_ROUTING</code> solvers only; sets the cap on the combinatorial sequences generated. If the default value of two millions is overridden to a lesser value, it can potentially speed up the solver. The default value is '2000000'. </li>

                <li>
                  'output\_edge\_path': If true then concatenated edge IDs will be added as the EDGE path column of the solution table for each source and target pair in shortest path solves. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'output\_wkt\_path': If true then concatenated wkt line segments will be added as the Wktroute column of the solution table for each source and target pair in shortest path solves. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'server\_id': Indicates which graph server(s) to send the request to. Default is to send to the server, amongst those containing the corresponding graph, that has the most computational bandwidth. For SHORTEST\_PATH solver type, the input is split amongst the server containing the corresponding graph. </li>
                <li>'convergence\_limit': For <code>PAGE\_RANK</code> solvers only; Maximum percent relative threshold on the page rank scores of each node between consecutive iterations to satisfy convergence. Default value is 1 (one) percent. The default value is '1.0'. </li>
                <li>'max\_iterations': For <code>PAGE\_RANK</code> solvers only; Maximum number of page rank iterations for satisfying convergence. Default value is 100. The default value is '100'. </li>
                <li>'max\_runs': For all <code>CENTRALITY</code> solvers only; Sets the maximum number of shortest path runs; maximum possible value is the number of nodes in the graph. Default value of 0 enables this value to be auto computed by the solver. The default value is '0'. </li>

                <li>
                  'output\_clusters': For <code>STATS\_ALL</code> solvers only; the cluster index for each node will be inserted as an additional column in the output. Supported values:

                  <ul>
                    <li>'true': An additional column 'CLUSTER' will be added for each node. </li>
                    <li>'false': No extra cluster info per node will be available in the output. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'solve\_heuristic': Specify heuristic search criterion only for the geo graphs and shortest path solves towards a single target. Supported values:

                  <ul>
                    <li>'astar': Employs A-STAR heuristics to speed up the shortest path traversal. </li>
                    <li>'none': No heuristics are applied. </li>
                  </ul>

                  The default value is 'none'.
                </li>

                <li>'astar\_radius': For path solvers only when 'solve\_heuristic' option is 'astar'. The shortest path traversal front includes nodes only within this radius (kilometers) as it moves towards the target location. The default value is '70'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="solve_graph_request"><span className="type-signature" />solve\_graph\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Solves an existing graph for a type of problem (e.g., shortest path, page rank, traveling salesman, etc.) using source nodes, destination nodes, and additional, optional weights and restrictions.
        <p> IMPORTANT: It's highly recommended that you review the <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> concepts documentation, the <a href="/content/guides/graph_rest_guide/" target="_top">Graph REST Tutorial</a>, and/or some <a href="/content/guides/tags/graph-solve" target="_top">/solve/graph examples</a> before using this endpoint. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="submit_request"><span className="type-signature" />submit\_request<span className="signature">(endpoint, request, callback<span className="signature-attributes">opt</span>)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Submits an arbitrary request to GPUdb. The response will be returned via the specified callback function, or via a promise if no callback function is provided. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th>Attributes</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>endpoint</code></td>
            <td className="type"> <span className="param-type">String</span> </td>

            <td className="attributes" />

            <td className="description last">The endpoint to which to submit the request.</td>
          </tr>

          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="attributes" />

            <td className="description last">The request object to submit.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="attributes"> \<optional><br /> </td>
            <td className="description last">The callback function.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="update_records"><span className="type-signature" />update\_records<span className="signature">(table\_name, expressions, new\_values\_maps, data, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Runs multiple predicate-based updates in a single call. With the list of given expressions, any matching record's column values will be updated as provided in <code>new\_values\_maps</code>. 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> 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 <code>options</code>. </p>
        <p> The <code>update\_on\_existing\_pk</code> 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 <code>ignore\_existing\_pk</code> 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>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">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="name"><code>expressions</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">A list of the actual predicates, one for each update; format should follow the guidelines <a href="/content/api/nodejs/GPUdb#filter"><code>here</code></a>.</td>
          </tr>

          <tr>
            <td className="name"><code>new\_values\_maps</code></td>
            <td className="type"> <span className="param-type">Array.\<Object></span> </td>
            <td className="description last">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 <code>expressions</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>data</code></td>
            <td className="type"> <span className="param-type">Array.\<Object></span> </td>
            <td className="description last">An optional list of JSON encoded objects to insert, one for each update, to be added if the particular update did not match any objects. The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'global\_expression': An optional global expression to reduce the search space of the predicates listed in <code>expressions</code>. The default value is ''. </li>

                <li>
                  'bypass\_safety\_checks': When set to <code>true</code>, 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>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'update\_on\_existing\_pk': 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 <code>expressions</code> finds no records to update, and the alternate insert record given in <code>records\_to\_insert</code> (or <code>records\_to\_insert\_str</code>) contains a primary key matching that of an existing record in the table. If <code>update\_on\_existing\_pk</code> is set to <code>true</code>, "update collisions" will result in the existing record collided into being removed and the record updated with values specified in <code>new\_values\_maps</code> taking its place; "insert collisions" will result in the collided-into record being updated with the values in <code>records\_to\_insert</code> / <code>records\_to\_insert\_str</code> (if given). If set to <code>false</code>, the existing collided-into record will remain unchanged, while the update will be rejected and the error handled as determined by <code>ignore\_existing\_pk</code>. If the specified table does not have a primary key, then this option has no effect. Supported values:

                  <ul>
                    <li>'true': 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>'false': 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 'false'.
                </li>

                <li>
                  'ignore\_existing\_pk': 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 (<code>update\_on\_existing\_pk</code> is <code>false</code>). If set to <code>true</code>, 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 <code>false</code>, 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 <code>update\_on\_existing\_pk</code> is <code>true</code>, then this option has no effect. Supported values:

                  <ul>
                    <li>'true': Ignore updates that result in primary key collisions with existing records. </li>
                    <li>'false': Treat as errors any updates that result in primary key collisions with existing records. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'update\_partition': Force qualifying records to be deleted and reinserted so their partition membership will be reevaluated. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'enable\_inplace\_updates': If set to <code>true</code>, qualifying records are modified in place. If set to <code>false</code>, 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>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'truncate\_strings': If set to <code>true</code>, any strings which are too long for their charN string fields will be truncated to fit. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'use\_expressions\_in\_new\_values\_maps': When set to <code>true</code>, all new values in <code>new\_values\_maps</code> are considered as expression values. When set to <code>false</code>, all new values in <code>new\_values\_maps</code> are considered as constants. NOTE: When <code>true</code>, string constants will need to be quoted to avoid being evaluated as expressions. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'record\_id': ID of a single record to be updated (returned in the call to <a href="/content/api/nodejs/GPUdb#insert_records"><code>GPUdb#insert\_records</code></a> or <a href="/content/api/nodejs/GPUdb#get_records_from_collection"><code>GPUdb#get\_records\_from\_collection</code></a>). </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="update_records_request"><span className="type-signature" />update\_records\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Runs multiple predicate-based updates in a single call. With the list of given expressions, any matching record's column values will be updated as provided in <code>new\_values\_maps</code>. 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> 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 <code>options</code>. </p>
        <p> The <code>update\_on\_existing\_pk</code> 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 <code>ignore\_existing\_pk</code> 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>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="upload_files"><span className="type-signature" />upload\_files<span className="signature">(file\_names, file\_data, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Uploads one or more files to <a href="/content/tools/kifs/" target="_top">KiFS</a>. There are two methods for uploading files: load files in their entirety, or load files in parts. The latter is recommended for files of approximately 60 MB or larger.
        <p> To upload files in their entirety, populate <code>file\_names</code> with the file names to upload into on KiFS, and their respective byte content in <code>file\_data</code>. </p>
        <p> Multiple steps are involved when uploading in multiple parts. Only one file at a time can be uploaded in this manner. A user-provided UUID is utilized to tie all the upload steps together for a given file. To upload a file in multiple parts: </p>
        <p> 1. Provide the file name in <code>file\_names</code>, the UUID in the <code>multipart\_upload\_uuid</code> key in <code>options</code>, and a <code>multipart\_operation</code> value of <code>init</code>. </p>
        <p> 2. Upload one or more parts by providing the file name, the part data in <code>file\_data</code>, the UUID, a <code>multipart\_operation</code> value of <code>upload\_part</code>, and the part number in the <code>multipart\_upload\_part\_number</code>. The part numbers must start at 1 and increase incrementally. Parts may not be uploaded out of order. </p>
        <p> 3. Complete the upload by providing the file name, the UUID, and a <code>multipart\_operation</code> value of <code>complete</code>. </p>
        <p> Multipart uploads in progress may be canceled by providing the file name, the UUID, and a <code>multipart\_operation</code> value of <code>cancel</code>. If an new upload is initialized with a different UUID for an existing upload in progress, the pre-existing upload is automatically canceled in favor of the new upload. </p>
        <p> The multipart upload must be completed for the file to be usable in KiFS. Information about multipart uploads in progress is available in <a href="/content/api/nodejs/GPUdb#show_files"><code>GPUdb#show\_files</code></a>. </p>
        <p> File data may be pre-encoded using base64 encoding. This should be indicated using the <code>file\_encoding</code> option, and is recommended when using JSON serialization. </p>
        <p> Each file path must reside in a top-level KiFS directory, i.e. one of the directories listed in <a href="/content/api/nodejs/GPUdb#show_directories"><code>GPUdb#show\_directories</code></a>. The user must have write permission on the directory. Nested directories are permitted in file name paths. Directories are delineated with the directory separator of '/'. For example, given the file path '/a/b/c/d.txt', 'a' must be a KiFS directory. </p>
        <p> These characters are allowed in file name paths: letters, numbers, spaces, the path delimiter of '/', and the characters: '.' '-' ':' '\[' ']' '(' ')' '#' '='. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>file\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">An array of full file name paths to be used for the files uploaded to KiFS. File names may have any number of nested directories in their paths, but the top-level directory must be an existing KiFS directory. Each file must reside in or under a top-level directory. A full file name path cannot be larger than 1024 characters.</td>
          </tr>

          <tr>
            <td className="name"><code>file\_data</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">File data for the files being uploaded, for the respective files in <code>file\_names</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'file\_encoding': Encoding that has been applied to the uploaded file data. When using JSON serialization it is recommended to utilize <code>base64</code>. The caller is responsible for encoding the data provided in this payload. Supported values:

                  <ul>
                    <li>'base64': Specifies that the file data being uploaded has been base64 encoded. </li>
                    <li>'none': The uploaded file data has not been encoded. </li>
                  </ul>

                  The default value is 'none'.
                </li>

                <li>
                  'multipart\_operation': Multipart upload operation to perform. Supported values:

                  <ul>
                    <li>'none': Default, indicates this is not a multipart upload. </li>
                    <li>'init': Initialize a multipart file upload. </li>
                    <li>'upload\_part': Uploads a part of the specified multipart file upload. </li>
                    <li>'complete': Complete the specified multipart file upload. </li>
                    <li>'cancel': Cancel the specified multipart file upload. </li>
                  </ul>

                  The default value is 'none'.
                </li>

                <li>'multipart\_upload\_uuid': UUID to uniquely identify a multipart upload. </li>
                <li>'multipart\_upload\_part\_number': Incremental part number for each part in a multipart upload. Part numbers start at 1, increment by 1, and must be uploaded sequentially </li>

                <li>
                  'delete\_if\_exists': If <code>true</code>, any existing files specified in <code>file\_names</code> will be deleted prior to start of upload. Otherwise the file is replaced once the upload completes. Rollback of the original file is no longer possible if the upload is cancelled, aborted or fails if the file was deleted beforehand. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="upload_files_fromurl"><span className="type-signature" />upload\_files\_fromurl<span className="signature">(file\_names, urls, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Uploads one or more files to <a href="/content/tools/kifs/" target="_top">KiFS</a>.
        <p> Each file path must reside in a top-level KiFS directory, i.e. one of the directories listed in <a href="/content/api/nodejs/GPUdb#show_directories"><code>GPUdb#show\_directories</code></a>. The user must have write permission on the directory. Nested directories are permitted in file name paths. Directories are delineated with the directory separator of '/'. For example, given the file path '/a/b/c/d.txt', 'a' must be a KiFS directory. </p>
        <p> These characters are allowed in file name paths: letters, numbers, spaces, the path delimiter of '/', and the characters: '.' '-' ':' '\[' ']' '(' ')' '#' '='. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>file\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">An array of full file name paths to be used for the files uploaded to KiFS. File names may have any number of nested directories in their paths, but the top-level directory must be an existing KiFS directory. Each file must reside in or under a top-level directory. A full file name path cannot be larger than 1024 characters.</td>
          </tr>

          <tr>
            <td className="name"><code>urls</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">List of URLs to upload, for each respective file in <code>file\_names</code>.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Optional parameters. The default value is an empty object ( {"{"}{"}"} ).</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="upload_files_fromurl_request"><span className="type-signature" />upload\_files\_fromurl\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Uploads one or more files to <a href="/content/tools/kifs/" target="_top">KiFS</a>.
        <p> Each file path must reside in a top-level KiFS directory, i.e. one of the directories listed in <a href="/content/api/nodejs/GPUdb#show_directories"><code>GPUdb#show\_directories</code></a>. The user must have write permission on the directory. Nested directories are permitted in file name paths. Directories are delineated with the directory separator of '/'. For example, given the file path '/a/b/c/d.txt', 'a' must be a KiFS directory. </p>
        <p> These characters are allowed in file name paths: letters, numbers, spaces, the path delimiter of '/', and the characters: '.' '-' ':' '\[' ']' '(' ')' '#' '='. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="upload_files_request"><span className="type-signature" />upload\_files\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>

      <div className="description">
        Uploads one or more files to <a href="/content/tools/kifs/" target="_top">KiFS</a>. There are two methods for uploading files: load files in their entirety, or load files in parts. The latter is recommended for files of approximately 60 MB or larger.
        <p> To upload files in their entirety, populate <code>file\_names</code> with the file names to upload into on KiFS, and their respective byte content in <code>file\_data</code>. </p>
        <p> Multiple steps are involved when uploading in multiple parts. Only one file at a time can be uploaded in this manner. A user-provided UUID is utilized to tie all the upload steps together for a given file. To upload a file in multiple parts: </p>
        <p> 1. Provide the file name in <code>file\_names</code>, the UUID in the <code>multipart\_upload\_uuid</code> key in <code>options</code>, and a <code>multipart\_operation</code> value of <code>init</code>. </p>
        <p> 2. Upload one or more parts by providing the file name, the part data in <code>file\_data</code>, the UUID, a <code>multipart\_operation</code> value of <code>upload\_part</code>, and the part number in the <code>multipart\_upload\_part\_number</code>. The part numbers must start at 1 and increase incrementally. Parts may not be uploaded out of order. </p>
        <p> 3. Complete the upload by providing the file name, the UUID, and a <code>multipart\_operation</code> value of <code>complete</code>. </p>
        <p> Multipart uploads in progress may be canceled by providing the file name, the UUID, and a <code>multipart\_operation</code> value of <code>cancel</code>. If an new upload is initialized with a different UUID for an existing upload in progress, the pre-existing upload is automatically canceled in favor of the new upload. </p>
        <p> The multipart upload must be completed for the file to be usable in KiFS. Information about multipart uploads in progress is available in <a href="/content/api/nodejs/GPUdb#show_files"><code>GPUdb#show\_files</code></a>. </p>
        <p> File data may be pre-encoded using base64 encoding. This should be indicated using the <code>file\_encoding</code> option, and is recommended when using JSON serialization. </p>
        <p> Each file path must reside in a top-level KiFS directory, i.e. one of the directories listed in <a href="/content/api/nodejs/GPUdb#show_directories"><code>GPUdb#show\_directories</code></a>. The user must have write permission on the directory. Nested directories are permitted in file name paths. Directories are delineated with the directory separator of '/'. For example, given the file path '/a/b/c/d.txt', 'a' must be a KiFS directory. </p>
        <p> These characters are allowed in file name paths: letters, numbers, spaces, the path delimiter of '/', and the characters: '.' '-' ':' '\[' ']' '(' ')' '#' '='. </p>
      </div>

      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="verify_backup"><span className="type-signature" />verify\_backup<span className="signature">(backup\_name, datasource\_name, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Inspects the requested database <a href="/content/admin/backup_restore/#database-backup" target="_top">backup(s)</a> for conformity at the remote file store accessible via the <a href="/content/concepts/data_sources/" target="_top">data source</a> specified by <code>datasource\_name</code>. By default all snapshots are inspected unless the option <code>backup\_id</code> is used to target a specific instance. Returns backup verification results. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>backup\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the backup. An empty string or '\*' will check all existing backups. Any text followed by a '\*' will inspect backups whose name starts with that text. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>datasource\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Data source through which the backup is accessible.</td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>'backup\_id': ID of the snapshot to verify. Set to '-1' to verify all snapshots in the backup. Leave empty to verify only the most recent snapshot. The default value is '-1'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="verify_backup_request"><span className="type-signature" />verify\_backup\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Inspects the requested database <a href="/content/admin/backup_restore/#database-backup" target="_top">backup(s)</a> for conformity at the remote file store accessible via the <a href="/content/concepts/data_sources/" target="_top">data source</a> specified by <code>datasource\_name</code>. By default all snapshots are inspected unless the option <code>backup\_id</code> is used to target a specific instance. Returns backup verification results. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="visualize_image_chart"><span className="type-signature" />visualize\_image\_chart<span className="signature">(table\_name, x\_column\_names, y\_column\_names, min\_x, max\_x, min\_y, max\_y, width, height, bg\_color, style\_options, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Scatter plot is the only plot type currently supported. A non-numeric column can be specified as x or y column and jitters can be added to them to avoid excessive overlapping. All color values must be in the format RRGGBB or AARRGGBB (to specify the alpha value). The image is contained in the <code>image\_data</code> field. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>table\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table containing the data to be drawn as a chart, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>.</td>
          </tr>

          <tr>
            <td className="name"><code>x\_column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Names of the columns containing the data mapped to the x axis of a chart.</td>
          </tr>

          <tr>
            <td className="name"><code>y\_column\_names</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Names of the columns containing the data mapped to the y axis of a chart.</td>
          </tr>

          <tr>
            <td className="name"><code>min\_x</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Lower bound for the x column values. For non-numeric x column, each x column item is mapped to an integral value starting from 0.</td>
          </tr>

          <tr>
            <td className="name"><code>max\_x</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Upper bound for the x column values. For non-numeric x column, each x column item is mapped to an integral value starting from 0.</td>
          </tr>

          <tr>
            <td className="name"><code>min\_y</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Lower bound for the y column values. For non-numeric y column, each y column item is mapped to an integral value starting from 0.</td>
          </tr>

          <tr>
            <td className="name"><code>max\_y</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Upper bound for the y column values. For non-numeric y column, each y column item is mapped to an integral value starting from 0.</td>
          </tr>

          <tr>
            <td className="name"><code>width</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Width of the generated image in pixels.</td>
          </tr>

          <tr>
            <td className="name"><code>height</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Height of the generated image in pixels.</td>
          </tr>

          <tr>
            <td className="name"><code>bg\_color</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Background color of the generated image.</td>
          </tr>

          <tr>
            <td className="name"><code>style\_options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Rendering style options for a chart.

              <ul>
                <li>'pointcolor': The color of points in the plot represented as a hexadecimal number. The default value is '0000FF'. </li>
                <li>'pointsize': The size of points in the plot represented as number of pixels. The default value is '3'. </li>

                <li>
                  'pointshape': The shape of points in the plot. Supported values:

                  <ul>
                    <li>'none' </li>
                    <li>'circle' </li>
                    <li>'square' </li>
                    <li>'diamond' </li>
                    <li>'hollowcircle' </li>
                    <li>'hollowsquare' </li>
                    <li>'hollowdiamond' </li>
                  </ul>

                  The default value is 'square'.
                </li>

                <li>'cb\_pointcolors': Point color class break information consisting of three entries: class-break attribute, class-break values/ranges, and point color values. This option overrides the pointcolor option if both are provided. Class-break ranges are represented in the form of "min:max". Class-break values/ranges and point color values are separated by cb\_delimiter, e.g. {"{"}"price", "20:30;30:40;40:50", "0xFF0000;0x00FF00;0x0000FF"{"}"}. </li>
                <li>'cb\_pointsizes': Point size class break information consisting of three entries: class-break attribute, class-break values/ranges, and point size values. This option overrides the pointsize option if both are provided. Class-break ranges are represented in the form of "min:max". Class-break values/ranges and point size values are separated by cb\_delimiter, e.g. {"{"}"states", "NY;TX;CA", "3;5;7"{"}"}. </li>
                <li>'cb\_pointshapes': Point shape class break information consisting of three entries: class-break attribute, class-break values/ranges, and point shape names. This option overrides the pointshape option if both are provided. Class-break ranges are represented in the form of "min:max". Class-break values/ranges and point shape names are separated by cb\_delimiter, e.g. {"{"}"states", "NY;TX;CA", "circle;square;diamond"{"}"}. </li>
                <li>'cb\_delimiter': A character or string which separates per-class values in a class-break style option string. The default value is ';'. </li>
                <li>'x\_order\_by': An expression or aggregate expression by which non-numeric x column values are sorted, e.g. "avg(price) descending". </li>
                <li>'y\_order\_by': An expression or aggregate expression by which non-numeric y column values are sorted, e.g. "avg(price)", which defaults to "avg(price) ascending". </li>

                <li>
                  'scale\_type\_x': Type of x axis scale. Supported values:

                  <ul>
                    <li>'none': No scale is applied to the x axis. </li>
                    <li>'log': A base-10 log scale is applied to the x axis. </li>
                  </ul>

                  The default value is 'none'.
                </li>

                <li>
                  'scale\_type\_y': Type of y axis scale. Supported values:

                  <ul>
                    <li>'none': No scale is applied to the y axis. </li>
                    <li>'log': A base-10 log scale is applied to the y axis. </li>
                  </ul>

                  The default value is 'none'.
                </li>

                <li>'min\_max\_scaled': If this options is set to <code>false</code>, this endpoint expects request's min/max values are not yet scaled. They will be scaled according to scale\_type\_x or scale\_type\_y for response. If this options is set to <code>true</code>, this endpoint expects request's min/max values are already scaled according to scale\_type\_x/scale\_type\_y. Response's min/max values will be equal to request's min/max values. The default value is 'false'. </li>
                <li>'jitter\_x': Amplitude of horizontal jitter applied to non-numeric x column values. The default value is '0.0'. </li>
                <li>'jitter\_y': Amplitude of vertical jitter applied to non-numeric y column values. The default value is '0.0'. </li>
                <li>'plot\_all': If this options is set to <code>true</code>, all non-numeric column values are plotted ignoring min\_x, max\_x, min\_y and max\_y parameters. The default value is 'false'. </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Optional parameters.

              <ul>
                <li>
                  'image\_encoding': Encoding to be applied to the output image. When using JSON serialization it is recommended to specify this as <code>base64</code>. Supported values:

                  <ul>
                    <li>'base64': Apply base64 encoding to the output image. </li>
                    <li>'none': Do not apply any additional encoding to the output image. </li>
                  </ul>

                  The default value is 'none'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="visualize_image_chart_request"><span className="type-signature" />visualize\_image\_chart\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Scatter plot is the only plot type currently supported. A non-numeric column can be specified as x or y column and jitters can be added to them to avoid excessive overlapping. All color values must be in the format RRGGBB or AARRGGBB (to specify the alpha value). The image is contained in the <code>image\_data</code> field. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="visualize_isochrone"><span className="type-signature" />visualize\_isochrone<span className="signature">(graph\_name, source\_node, max\_solution\_radius, weights\_on\_edges, restrictions, num\_levels, generate\_image, levels\_table, style\_options, solve\_options, contour\_options, options, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Generate an image containing isolines for travel results using an existing graph. Isolines represent curves of equal cost, with cost typically referring to the time or distance assigned as the weights of the underlying graph. See <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> for more information on graphs. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>graph\_name</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the graph on which the isochrone is to be computed.</td>
          </tr>

          <tr>
            <td className="name"><code>source\_node</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Starting vertex on the underlying graph from/to which the isochrones are created.</td>
          </tr>

          <tr>
            <td className="name"><code>max\_solution\_radius</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Extent of the search radius around <code>source\_node</code>. Set to '-1.0' for unrestricted search radius. The default value is -1.0.</td>
          </tr>

          <tr>
            <td className="name"><code>weights\_on\_edges</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Additional weights to apply to the edges of an existing graph. Weights must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS WEIGHTS\_EDGE\_ID', or expressions, e.g., 'ST\_LENGTH(wkt) AS WEIGHTS\_VALUESPECIFIED'. Any provided weights will be added (in the case of 'WEIGHTS\_VALUESPECIFIED') to or multiplied with (in the case of 'WEIGHTS\_FACTORSPECIFIED') the existing weight(s). The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>restrictions</code></td>
            <td className="type"> <span className="param-type">Array.\<String></span> </td>
            <td className="description last">Additional restrictions to apply to the nodes/edges of an existing graph. Restrictions must be specified using <a href="/content/graph_solver/network_graph_solver/#identifiers" target="_top">identifiers</a>; identifiers are grouped as <a href="/content/graph_solver/network_graph_solver/#id-combos" target="_top">combinations</a>. Identifiers can be used with existing column names, e.g., 'table.column AS RESTRICTIONS\_EDGE\_ID', or expressions, e.g., 'column/2 AS RESTRICTIONS\_VALUECOMPARED'. If <code>remove\_previous\_restrictions</code> is set to <code>true</code>, any provided restrictions will replace the existing restrictions. If <code>remove\_previous\_restrictions</code> is set to <code>false</code>, any provided restrictions will be added (in the case of 'RESTRICTIONS\_VALUECOMPARED') to or replaced (in the case of 'RESTRICTIONS\_ONOFFCOMPARED'). The default value is an empty array ( \[] ).</td>
          </tr>

          <tr>
            <td className="name"><code>num\_levels</code></td>
            <td className="type"> <span className="param-type">Number</span> </td>
            <td className="description last">Number of equally-separated isochrones to compute. The default value is 1.</td>
          </tr>

          <tr>
            <td className="name"><code>generate\_image</code></td>
            <td className="type"> <span className="param-type">Boolean</span> </td>

            <td className="description last">
              If set to <code>true</code>, generates a PNG image of the isochrones in the response. Supported values:

              <ul>
                <li><code>true</code> </li>
                <li><code>false</code> </li>
              </ul>

              The default value is <code>true</code>.
            </td>
          </tr>

          <tr>
            <td className="name"><code>levels\_table</code></td>
            <td className="type"> <span className="param-type">String</span> </td>
            <td className="description last">Name of the table to output the isochrones to, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. The table will contain levels and their corresponding WKT geometry. If no value is provided, the table is not generated. The default value is ''.</td>
          </tr>

          <tr>
            <td className="name"><code>style\_options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Various style related options of the isochrone image.

              <ul>
                <li>'line\_size': The width of the contour lines in pixels. The default value is '3'. The minimum allowed value is '0'. The maximum allowed value is '20'. </li>
                <li>'color': Color of generated isolines. All color values must be in the format RRGGBB or AARRGGBB (to specify the alpha value). If alpha is specified and flooded contours are enabled, it will be used for as the transparency of the latter. The default value is 'FF696969'. </li>
                <li>'bg\_color': When <code>generate\_image</code> is set to <code>true</code>, background color of the generated image. All color values must be in the format RRGGBB or AARRGGBB (to specify the alpha value). The default value is '00000000'. </li>
                <li>'text\_color': When <code>add\_labels</code> is set to <code>true</code>, color for the labels. All color values must be in the format RRGGBB or AARRGGBB (to specify the alpha value). The default value is 'FF000000'. </li>

                <li>
                  'colormap': Colormap for contours or fill-in regions when applicable. All color values must be in the format RRGGBB or AARRGGBB (to specify the alpha value). Supported values:

                  <ul>
                    <li>'jet' </li>
                    <li>'accent' </li>
                    <li>'afmhot' </li>
                    <li>'autumn' </li>
                    <li>'binary' </li>
                    <li>'blues' </li>
                    <li>'bone' </li>
                    <li>'brbg' </li>
                    <li>'brg' </li>
                    <li>'bugn' </li>
                    <li>'bupu' </li>
                    <li>'bwr' </li>
                    <li>'cmrmap' </li>
                    <li>'cool' </li>
                    <li>'coolwarm' </li>
                    <li>'copper' </li>
                    <li>'cubehelix' </li>
                    <li>'dark2' </li>
                    <li>'flag' </li>
                    <li>'gist\_earth' </li>
                    <li>'gist\_gray' </li>
                    <li>'gist\_heat' </li>
                    <li>'gist\_ncar' </li>
                    <li>'gist\_rainbow' </li>
                    <li>'gist\_stern' </li>
                    <li>'gist\_yarg' </li>
                    <li>'gnbu' </li>
                    <li>'gnuplot2' </li>
                    <li>'gnuplot' </li>
                    <li>'gray' </li>
                    <li>'greens' </li>
                    <li>'greys' </li>
                    <li>'hot' </li>
                    <li>'hsv' </li>
                    <li>'inferno' </li>
                    <li>'magma' </li>
                    <li>'nipy\_spectral' </li>
                    <li>'ocean' </li>
                    <li>'oranges' </li>
                    <li>'orrd' </li>
                    <li>'paired' </li>
                    <li>'pastel1' </li>
                    <li>'pastel2' </li>
                    <li>'pink' </li>
                    <li>'piyg' </li>
                    <li>'plasma' </li>
                    <li>'prgn' </li>
                    <li>'prism' </li>
                    <li>'pubu' </li>
                    <li>'pubugn' </li>
                    <li>'puor' </li>
                    <li>'purd' </li>
                    <li>'purples' </li>
                    <li>'rainbow' </li>
                    <li>'rdbu' </li>
                    <li>'rdgy' </li>
                    <li>'rdpu' </li>
                    <li>'rdylbu' </li>
                    <li>'rdylgn' </li>
                    <li>'reds' </li>
                    <li>'seismic' </li>
                    <li>'set1' </li>
                    <li>'set2' </li>
                    <li>'set3' </li>
                    <li>'spectral' </li>
                    <li>'spring' </li>
                    <li>'summer' </li>
                    <li>'terrain' </li>
                    <li>'viridis' </li>
                    <li>'winter' </li>
                    <li>'wistia' </li>
                    <li>'ylgn' </li>
                    <li>'ylgnbu' </li>
                    <li>'ylorbr' </li>
                    <li>'ylorrd' </li>
                  </ul>

                  The default value is 'jet'.
                </li>
              </ul>
            </td>
          </tr>

          <tr>
            <td className="name"><code>solve\_options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Solver specific parameters.

              <ul>
                <li>
                  'remove\_previous\_restrictions': Ignore the restrictions applied to the graph during the creation stage and only use the restrictions specified in this request if set to <code>true</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'restriction\_threshold\_value': Value-based restriction comparison. Any node or edge with a 'RESTRICTIONS\_VALUECOMPARED' value greater than the <code>restriction\_threshold\_value</code> will not be included in the solution. </li>
                <li>'uniform\_weights': When specified, assigns the given value to all the edges in the graph. Note that weights provided in <code>weights\_on\_edges</code> will override this value. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>contour\_options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Contour specific parameters.

              <ul>
                <li>
                  'projection': Spatial Reference System (i.e. EPSG Code). Supported values:

                  <ul>
                    <li>'3857' </li>
                    <li>'102100' </li>
                    <li>'900913' </li>
                    <li>'EPSG:4326' </li>
                    <li>'PLATE\_CARREE' </li>
                    <li>'EPSG:900913' </li>
                    <li>'EPSG:102100' </li>
                    <li>'EPSG:3857' </li>
                    <li>'WEB\_MERCATOR' </li>
                  </ul>

                  The default value is 'PLATE\_CARREE'.
                </li>

                <li>'width': When <code>generate\_image</code> is set to <code>true</code>, width of the generated image. The default value is '512'. </li>
                <li>'height': When <code>generate\_image</code> is set to <code>true</code>, height of the generated image. If the default value is used, the <code>height</code> is set to the value resulting from multiplying the aspect ratio by the <code>width</code>. The default value is '-1'. </li>
                <li>'search\_radius': When interpolating the graph solution to generate the isochrone, neighborhood of influence of sample data (in percent of the image/grid). The default value is '20'. </li>
                <li>'grid\_size': When interpolating the graph solution to generate the isochrone, number of subdivisions along the x axis when building the grid (the y is computed using the aspect ratio of the output image). The default value is '100'. </li>

                <li>
                  'color\_isolines': Color each isoline according to the colormap; otherwise, use the foreground color. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>
                  'add\_labels': If set to <code>true</code>, add labels to the isolines. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>'labels\_font\_size': When <code>add\_labels</code> is set to <code>true</code>, size of the font (in pixels) to use for labels. The default value is '12'. </li>
                <li>'labels\_font\_family': When <code>add\_labels</code> is set to <code>true</code>, font name to be used when adding labels. The default value is 'arial'. </li>
                <li>'labels\_search\_window': When <code>add\_labels</code> is set to <code>true</code>, a search window is used to rate the local quality of each isoline. Smooth, continuous, long stretches with relatively flat angles are favored. The provided value is multiplied by the <code>labels\_font\_size</code> to calculate the final window size. The default value is '4'. </li>
                <li>'labels\_intralevel\_separation': When <code>add\_labels</code> is set to <code>true</code>, this value determines the distance (in multiples of the <code>labels\_font\_size</code>) to use when separating labels of different values. The default value is '4'. </li>
                <li>'labels\_interlevel\_separation': When <code>add\_labels</code> is set to <code>true</code>, this value determines the distance (in percent of the total window size) to use when separating labels of the same value. The default value is '20'. </li>
                <li>'labels\_max\_angle': When <code>add\_labels</code> is set to <code>true</code>, maximum angle (in degrees) from the vertical to use when adding labels. The default value is '60'. </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>options</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="description last">
              Additional parameters.

              <ul>
                <li>'solve\_table': Name of the table to host intermediate solve results, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. This table will contain the position and cost for each vertex in the graph. If the default value is used, a temporary table is created and deleted once the solution is calculated. The default value is ''. </li>

                <li>
                  'is\_replicated': If set to <code>true</code>, replicate the <code>solve\_table</code>. Supported values:

                  <ul>
                    <li>'true' </li>
                    <li>'false' </li>
                  </ul>

                  The default value is 'true'.
                </li>

                <li>'data\_min\_x': Lower bound for the x values. If not provided, it will be computed from the bounds of the input data. </li>
                <li>'data\_max\_x': Upper bound for the x values. If not provided, it will be computed from the bounds of the input data. </li>
                <li>'data\_min\_y': Lower bound for the y values. If not provided, it will be computed from the bounds of the input data. </li>
                <li>'data\_max\_y': Upper bound for the y values. If not provided, it will be computed from the bounds of the input data. </li>
                <li>'concavity\_level': Factor to qualify the concavity of the isochrone curves. The lower the value, the more convex (with '0' being completely convex and '1' being the most concave). The default value is '0.5'. The minimum allowed value is '0'. The maximum allowed value is '1'. </li>

                <li>
                  'use\_priority\_queue\_solvers': Sets the solver methods explicitly if true. Supported values:

                  <ul>
                    <li>'true': Uses the solvers scheduled for 'shortest\_path' and 'inverse\_shortest\_path' based on <code>solve\_direction</code>. </li>
                    <li>'false': Uses the solvers 'priority\_queue' and 'inverse\_priority\_queue' based on <code>solve\_direction</code>. </li>
                  </ul>

                  The default value is 'false'.
                </li>

                <li>
                  'solve\_direction': Specify whether we are going to the source node, or starting from it. Supported values:

                  <ul>
                    <li>'from\_source': Shortest path to get to the source (inverse Dijkstra). </li>
                    <li>'to\_source': Shortest path to source (Dijkstra). </li>
                  </ul>

                  The default value is 'from\_source'.
                </li>
              </ul>

              The default value is an empty object ( {"{"}{"}"} ).
            </td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="visualize_isochrone_request"><span className="type-signature" />visualize\_isochrone\_request<span className="signature">(request, callback)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Generate an image containing isolines for travel results using an existing graph. Isolines represent curves of equal cost, with cost typically referring to the time or distance assigned as the weights of the underlying graph. See <a href="/content/graph_solver/network_graph_solver/" target="_top">Graphs and Solvers</a> for more information on graphs. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>
            <td className="description last">Request object containing the parameters for the operation.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="description last">Callback that handles the response.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the response object, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id="wms_request"><span className="type-signature" />wms\_request<span className="signature">(request, callback<span className="signature-attributes">opt</span>)</span><span className="type-signature"> → {"{"}Promise{"}"}</span></h4>
      <div className="description"> Request a WMS (Web Map Service) rasterized image. The image will be returned as a Node.js Buffer object via the specified callback function, or via a promise if no callback function is provided. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th>Attributes</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>request</code></td>
            <td className="type"> <span className="param-type">Object</span> </td>

            <td className="attributes" />

            <td className="description last">Object containing WMS parameters.</td>
          </tr>

          <tr>
            <td className="name"><code>callback</code></td>
            <td className="type"> <span className="param-type"><a href="/content/api/nodejs/global#GPUdbCallback">GPUdbCallback</a></span> </td>
            <td className="attributes"> \<optional><br /> </td>
            <td className="description last">The callback function.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> A promise that will be fulfilled with the image, if no callback function is provided. </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Promise</span> </div>
      </div>

      <h4 className="name" id=".decode"><span className="type-signature">(static) </span>decode<span className="signature">(o)</span><span className="type-signature"> → {"{"}Object|Array.\<Object>{"}"}</span></h4>
      <div className="description"> Decodes a JSON string, or array of JSON strings, returned from GPUdb into JSON object(s). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>o</code></td>
            <td className="type"> <span className="param-type">String</span> | <span className="param-type">Array.\<String></span> </td>
            <td className="description last">The JSON string(s) to decode.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> The decoded JSON object(s). </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Object</span> | <span className="param-type">Array.\<Object></span> </div>
      </div>

      <h4 className="name" id=".decode_no_inf_nan"><span className="type-signature">(static) </span>decode\_no\_inf\_nan<span className="signature">(o)</span><span className="type-signature"> → {"{"}Object|Array.\<Object>{"}"}</span></h4>
      <div className="description"> Decodes a JSON string, or array of JSON strings, returned from GPUdb into JSON object(s). Special treatment for quoted "Infinity", "-Infinity", and "NaN". Catches those and converts to null. This is significantly slower than the regular decode function. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>o</code></td>
            <td className="type"> <span className="param-type">String</span> | <span className="param-type">Array.\<String></span> </td>
            <td className="description last">The JSON string(s) to decode.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> The decoded JSON object(s). </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Object</span> | <span className="param-type">Array.\<Object></span> </div>
      </div>

      <h4 className="name" id=".decode_regular"><span className="type-signature">(static) </span>decode\_regular<span className="signature">(o)</span><span className="type-signature"> → {"{"}Object|Array.\<Object>{"}"}</span></h4>
      <div className="description"> Decodes a JSON string, or array of JSON strings, returned from GPUdb into JSON object(s). </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>o</code></td>
            <td className="type"> <span className="param-type">String</span> | <span className="param-type">Array.\<String></span> </td>
            <td className="description last">The JSON string(s) to decode.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> The decoded JSON object(s). </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">Object</span> | <span className="param-type">Array.\<Object></span> </div>
      </div>

      <h4 className="name" id=".encode"><span className="type-signature">(static) </span>encode<span className="signature">(o)</span><span className="type-signature"> → {"{"}String|Array.\<String>{"}"}</span></h4>
      <div className="description"> Encodes a JSON object, or array of JSON objects, into JSON string(s) to be passed to GPUdb. </div>
      <h5>Parameters:</h5>

      <table className="params">
        <thead>
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th className="last">Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td className="name"><code>o</code></td>
            <td className="type"> <span className="param-type">Object</span> | <span className="param-type">Array.\<Object></span> </td>
            <td className="description last">The JSON object(s) to encode.</td>
          </tr>
        </tbody>
      </table>

      <div className="dl details">
        <div className="dt tag-source">Source:</div>

        <div className="dd tag-source">
          <ul className="dummy">
            <li> , </li>
          </ul>
        </div>
      </div>

      <h5>Returns:</h5>
      <div className="param-desc"> The encoded JSON string(s). </div>

      <div className="dl">
        <div className="dt"> Type </div>
        <div className="dd"> <span className="param-type">String</span> | <span className="param-type">Array.\<String></span> </div>
      </div>
    </div>
  </div>
</div>
