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

# kinetica.Utils.GenericRecordRetriever

> kinetica.Utils.GenericRecordRetriever — Kinetica C# API

<div className="kinetica-doxygen">
  <div className="contents">
    <p>Object that permits efficient retrieval of records from GPUdb using GenericRecord and dictionary-based records, with support for multi-head access and HA failover. <a href="#details">More...</a></p>

    <table className="memberdecls">
      <tr className="heading">
        <td colSpan="2">
          <h2 className="groupheader">
            <div id="pub-methods" />

            Public Member Functions
          </h2>
        </td>
      </tr>

      <tr className="memitem:a2eed6310903ffd92d9f4bc4d19196c0e" id="r_a2eed6310903ffd92d9f4bc4d19196c0e">
        <td className="memItemLeft" align="right" valign="top"> </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a2eed6310903ffd92d9f4bc4d19196c0e">GenericRecordRetriever</a> (<a className="el" href="/content/api/cs/classkinetica_1_1Kinetica">Kinetica</a> kdb, string tableName, <a className="el" href="/content/api/cs/classkinetica_1_1KineticaType">KineticaType</a> ktype, <a className="el" href="/content/api/cs/classkinetica_1_1Utils_1_1WorkerList">WorkerList</a>? workers=null)</td>
      </tr>

      <tr className="memdesc:a2eed6310903ffd92d9f4bc4d19196c0e">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Create a <a className="el" href="/content/api/cs/classkinetica_1_1Utils_1_1GenericRecordRetriever" title="Object that permits efficient retrieval of records from GPUdb using GenericRecord and dictionary-base...">GenericRecordRetriever</a> for the given table. <br /></td>
      </tr>

      <tr className="separator:a2eed6310903ffd92d9f4bc4d19196c0e">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a61c01783c0e7dd2bcccb39d85f33aac1" id="r_a61c01783c0e7dd2bcccb39d85f33aac1">
        <td className="memItemLeft" align="right" valign="top"><a className="el" href="/content/api/cs/classkinetica_1_1ExecuteSqlResponse">ExecuteSqlResponse</a> </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a61c01783c0e7dd2bcccb39d85f33aac1">GetRecordsByKey</a> (IDictionary\< string, object?> keyValues, string? expression=null, IList\< string >? columns=null, long offset=0, long limit=-9999)</td>
      </tr>

      <tr className="memdesc:a61c01783c0e7dd2bcccb39d85f33aac1">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Retrieves records for a given shard key using SQL with fast index lookup. <br /></td>
      </tr>

      <tr className="separator:a61c01783c0e7dd2bcccb39d85f33aac1">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a4b079e878c4ac3d9210929a388fa1101" id="r_a4b079e878c4ac3d9210929a388fa1101">
        <td className="memItemLeft" align="right" valign="top"><a className="el" href="/content/api/cs/classkinetica_1_1ExecuteSqlResponse">ExecuteSqlResponse</a> </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a4b079e878c4ac3d9210929a388fa1101">GetRecordsByExpression</a> (string whereExpression, IList\< string >? columns=null, long offset=0, long limit=-9999)</td>
      </tr>

      <tr className="memdesc:a4b079e878c4ac3d9210929a388fa1101">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Retrieves records using a SQL WHERE clause expression with fast index lookup optimization. <br /></td>
      </tr>

      <tr className="separator:a4b079e878c4ac3d9210929a388fa1101">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a740c29d122450de68d3d772299a8eb35" id="r_a740c29d122450de68d3d772299a8eb35">
        <td className="memItemLeft" align="right" valign="top">bool </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a740c29d122450de68d3d772299a8eb35">HasAllShardKeyValues</a> (IDictionary\< string, object?> keyValues)</td>
      </tr>

      <tr className="memdesc:a740c29d122450de68d3d772299a8eb35">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Checks if the given key values contain all required shard key columns. <br /></td>
      </tr>

      <tr className="separator:a740c29d122450de68d3d772299a8eb35">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a91673a6cee38c0f07f4d8a8a90710ba1" id="r_a91673a6cee38c0f07f4d8a8a90710ba1">
        <td className="memItemLeft" align="right" valign="top">int </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a91673a6cee38c0f07f4d8a8a90710ba1">GetWorkerIndexForKey</a> (IDictionary\< string, object?> keyValues)</td>
      </tr>

      <tr className="memdesc:a91673a6cee38c0f07f4d8a8a90710ba1">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Computes the worker index that would handle records with the given key values. <br /></td>
      </tr>

      <tr className="separator:a91673a6cee38c0f07f4d8a8a90710ba1">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>
    </table>

    <table className="memberdecls">
      <tr className="heading">
        <td colSpan="2">
          <h2 className="groupheader">
            <div id="properties" />

            Properties
          </h2>
        </td>
      </tr>

      <tr className="memitem:aac5eb62d21642f90b93b1b1e249698da" id="r_aac5eb62d21642f90b93b1b1e249698da">
        <td className="memItemLeft" align="right" valign="top"><a className="el" href="/content/api/cs/classkinetica_1_1Kinetica">Kinetica</a> </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#aac5eb62d21642f90b93b1b1e249698da">KineticaDB</a><code> \[get]</code></td>
      </tr>

      <tr className="memdesc:aac5eb62d21642f90b93b1b1e249698da">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> connection. <br /></td>
      </tr>

      <tr className="separator:aac5eb62d21642f90b93b1b1e249698da">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a8b21e8f5801e937885441c45c5c994ec" id="r_a8b21e8f5801e937885441c45c5c994ec">
        <td className="memItemLeft" align="right" valign="top">string </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a8b21e8f5801e937885441c45c5c994ec">TableName</a><code> \[get]</code></td>
      </tr>

      <tr className="memdesc:a8b21e8f5801e937885441c45c5c994ec">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the table name. <br /></td>
      </tr>

      <tr className="separator:a8b21e8f5801e937885441c45c5c994ec">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:accc65c65f54d113de447271c9d9d2ad4" id="r_accc65c65f54d113de447271c9d9d2ad4">
        <td className="memItemLeft" align="right" valign="top"><a className="el" href="/content/api/cs/classkinetica_1_1KineticaType">KineticaType</a> </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#accc65c65f54d113de447271c9d9d2ad4">KType</a><code> \[get]</code></td>
      </tr>

      <tr className="memdesc:accc65c65f54d113de447271c9d9d2ad4">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the <a className="el" href="/content/api/cs/classkinetica_1_1KineticaType" title="Describes a Kinetica record type — its columns, properties, and Avro schema — and can create the type...">KineticaType</a> for the table. <br /></td>
      </tr>

      <tr className="separator:accc65c65f54d113de447271c9d9d2ad4">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a14bb628be1bece34c61b5458c659bb44" id="r_a14bb628be1bece34c61b5458c659bb44">
        <td className="memItemLeft" align="right" valign="top">int </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a14bb628be1bece34c61b5458c659bb44">NumClusterSwitches</a><code> \[get]</code></td>
      </tr>

      <tr className="memdesc:a14bb628be1bece34c61b5458c659bb44">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the number of cluster switches due to HA failover. <br /></td>
      </tr>

      <tr className="separator:a14bb628be1bece34c61b5458c659bb44">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a58fb7ca1c3a2bee613abcd3f6de9e2cf" id="r_a58fb7ca1c3a2bee613abcd3f6de9e2cf">
        <td className="memItemLeft" align="right" valign="top">int </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a58fb7ca1c3a2bee613abcd3f6de9e2cf">HARingSize</a><code> \[get]</code></td>
      </tr>

      <tr className="memdesc:a58fb7ca1c3a2bee613abcd3f6de9e2cf">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the HA ring size. <br /></td>
      </tr>

      <tr className="separator:a58fb7ca1c3a2bee613abcd3f6de9e2cf">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:aa5ecdb867b7c5c4263e45fe0b59f2f80" id="r_aa5ecdb867b7c5c4263e45fe0b59f2f80">
        <td className="memItemLeft" align="right" valign="top">bool </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#aa5ecdb867b7c5c4263e45fe0b59f2f80">MultiHeadEnabled</a><code> \[get]</code></td>
      </tr>

      <tr className="memdesc:aa5ecdb867b7c5c4263e45fe0b59f2f80">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets whether multi-head retrieval is enabled. <br /></td>
      </tr>

      <tr className="separator:aa5ecdb867b7c5c4263e45fe0b59f2f80">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a9b98784a77b818cbbb14cd5189465978" id="r_a9b98784a77b818cbbb14cd5189465978">
        <td className="memItemLeft" align="right" valign="top">IList\< string > </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a9b98784a77b818cbbb14cd5189465978">ShardKeyColumnNames</a><code> \[get]</code></td>
      </tr>

      <tr className="memdesc:a9b98784a77b818cbbb14cd5189465978">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the shard key column names, or empty if table is not sharded. <br /></td>
      </tr>

      <tr className="separator:a9b98784a77b818cbbb14cd5189465978">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>
    </table>

    <div id="details" />

    <h2 className="groupheader">Detailed Description</h2>

    <div className="textblock">
      <p>Object that permits efficient retrieval of records from GPUdb using GenericRecord and dictionary-based records, with support for multi-head access and HA failover. </p>
      <p>This is used by the ADO.NET driver for key lookup operations where we don't have strongly-typed record classes. It uses SQL execution with optimized expression building based on shard keys.</p>
      <p><a className="el" href="/content/api/cs/classkinetica_1_1Utils_1_1GenericRecordRetriever" title="Object that permits efficient retrieval of records from GPUdb using GenericRecord and dictionary-base...">GenericRecordRetriever</a> instances are thread safe and may be used from any number of threads simultaneously. </p>
      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L14">14</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
    </div>

    <h2 className="groupheader">Constructor & Destructor Documentation</h2>

    <div id="a2eed6310903ffd92d9f4bc4d19196c0e" />

    <h2 className="memtitle"><span className="permalink"><a href="#a2eed6310903ffd92d9f4bc4d19196c0e">◆ </a></span>GenericRecordRetriever()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">kinetica.Utils.GenericRecordRetriever.GenericRecordRetriever </td>
                  <td>(</td>
                  <td className="paramtype"><a className="el" href="/content/api/cs/classkinetica_1_1Kinetica">Kinetica</a></td>
                  <td className="paramname"><span className="paramname"><span className="em">kdb</span></span>, </td>
                </tr>

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

                  <td />

                  <td className="paramtype">string</td>
                  <td className="paramname"><span className="paramname"><span className="em">tableName</span></span>, </td>
                </tr>

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

                  <td />

                  <td className="paramtype"><a className="el" href="/content/api/cs/classkinetica_1_1KineticaType">KineticaType</a></td>
                  <td className="paramname"><span className="paramname"><span className="em">ktype</span></span>, </td>
                </tr>

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

                  <td />

                  <td className="paramtype"><a className="el" href="/content/api/cs/classkinetica_1_1Utils_1_1WorkerList">WorkerList</a>?</td>
                  <td className="paramname"><span className="paramname"><span className="em">workers</span></span><span className="paramdefsep"> = </span><span className="paramdefval">null</span> )</td>
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Create a <a className="el" href="/content/api/cs/classkinetica_1_1Utils_1_1GenericRecordRetriever" title="Object that permits efficient retrieval of records from GPUdb using GenericRecord and dictionary-base...">GenericRecordRetriever</a> for the given table. </p>

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

          <div className="dd">
            <table className="params">
              <tr>
                <td className="paramname">kdb</td>
                <td>The <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> connection.</td>
              </tr>

              <tr>
                <td className="paramname">tableName</td>
                <td>The table name to retrieve from.</td>
              </tr>

              <tr>
                <td className="paramname">ktype</td>
                <td>The <a className="el" href="/content/api/cs/classkinetica_1_1KineticaType" title="Describes a Kinetica record type — its columns, properties, and Avro schema — and can create the type...">KineticaType</a> for the table.</td>
              </tr>

              <tr>
                <td className="paramname">workers</td>
                <td>Optional worker list for multi-head retrieval.</td>
              </tr>
            </table>
          </div>
        </div>

        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L91">91</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <h2 className="groupheader">Member Function Documentation</h2>

    <div id="a4b079e878c4ac3d9210929a388fa1101" />

    <h2 className="memtitle"><span className="permalink"><a href="#a4b079e878c4ac3d9210929a388fa1101">◆ </a></span>GetRecordsByExpression()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname"><a className="el" href="/content/api/cs/classkinetica_1_1ExecuteSqlResponse">ExecuteSqlResponse</a> kinetica.Utils.GenericRecordRetriever.GetRecordsByExpression </td>
                  <td>(</td>
                  <td className="paramtype">string</td>
                  <td className="paramname"><span className="paramname"><span className="em">whereExpression</span></span>, </td>
                </tr>

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

                  <td />

                  <td className="paramtype">IList\< string >?</td>
                  <td className="paramname"><span className="paramname"><span className="em">columns</span></span><span className="paramdefsep"> = </span><span className="paramdefval">null</span>, </td>
                </tr>

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

                  <td />

                  <td className="paramtype">long</td>
                  <td className="paramname"><span className="paramname"><span className="em">offset</span></span><span className="paramdefsep"> = </span><span className="paramdefval">0</span>, </td>
                </tr>

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

                  <td />

                  <td className="paramtype">long</td>
                  <td className="paramname"><span className="paramname"><span className="em">limit</span></span><span className="paramdefsep"> = </span><span className="paramdefval">-9999</span> )</td>
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Retrieves records using a SQL WHERE clause expression with fast index lookup optimization. </p>

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

          <div className="dd">
            <table className="params">
              <tr>
                <td className="paramname">whereExpression</td>
                <td>SQL WHERE clause expression.</td>
              </tr>

              <tr>
                <td className="paramname">columns</td>
                <td>Optional list of columns to retrieve. Null means all columns.</td>
              </tr>

              <tr>
                <td className="paramname">offset</td>
                <td>Starting record offset (default 0).</td>
              </tr>

              <tr>
                <td className="paramname">limit</td>
                <td>Maximum number of records to retrieve (default -9999 means no limit).</td>
              </tr>
            </table>
          </div>
        </div>

        <div className="dl section return">
          <div className="dt">Returns</div>
          <div className="dd">The <a className="el" href="/content/api/cs/classkinetica_1_1ExecuteSqlResponse" title="A set of results returned by Kinetica.executeSql.">ExecuteSqlResponse</a> containing the results.</div>
        </div>

        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L405">405</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <div id="a61c01783c0e7dd2bcccb39d85f33aac1" />

    <h2 className="memtitle"><span className="permalink"><a href="#a61c01783c0e7dd2bcccb39d85f33aac1">◆ </a></span>GetRecordsByKey()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname"><a className="el" href="/content/api/cs/classkinetica_1_1ExecuteSqlResponse">ExecuteSqlResponse</a> kinetica.Utils.GenericRecordRetriever.GetRecordsByKey </td>
                  <td>(</td>
                  <td className="paramtype">IDictionary\< string, object?></td>
                  <td className="paramname"><span className="paramname"><span className="em">keyValues</span></span>, </td>
                </tr>

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

                  <td />

                  <td className="paramtype">string?</td>
                  <td className="paramname"><span className="paramname"><span className="em">expression</span></span><span className="paramdefsep"> = </span><span className="paramdefval">null</span>, </td>
                </tr>

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

                  <td />

                  <td className="paramtype">IList\< string >?</td>
                  <td className="paramname"><span className="paramname"><span className="em">columns</span></span><span className="paramdefsep"> = </span><span className="paramdefval">null</span>, </td>
                </tr>

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

                  <td />

                  <td className="paramtype">long</td>
                  <td className="paramname"><span className="paramname"><span className="em">offset</span></span><span className="paramdefsep"> = </span><span className="paramdefval">0</span>, </td>
                </tr>

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

                  <td />

                  <td className="paramtype">long</td>
                  <td className="paramname"><span className="paramname"><span className="em">limit</span></span><span className="paramdefsep"> = </span><span className="paramdefval">-9999</span> )</td>
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Retrieves records for a given shard key using SQL with fast index lookup. </p>
        <p>All records matching the key and satisfying the optional additional expression will be returned, up to the specified limit.</p>

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

          <div className="dd">
            <table className="params">
              <tr>
                <td className="paramname">keyValues</td>
                <td>Dictionary of column name -> value for the shard key columns.</td>
              </tr>

              <tr>
                <td className="paramname">expression</td>
                <td>An optional additional filter expression.</td>
              </tr>

              <tr>
                <td className="paramname">columns</td>
                <td>Optional list of columns to retrieve. Null means all columns (SELECT \*).</td>
              </tr>

              <tr>
                <td className="paramname">offset</td>
                <td>Starting record offset (default 0).</td>
              </tr>

              <tr>
                <td className="paramname">limit</td>
                <td>Maximum number of records to retrieve (default -9999 means no limit).</td>
              </tr>
            </table>
          </div>
        </div>

        <div className="dl section return">
          <div className="dt">Returns</div>
          <div className="dd">The <a className="el" href="/content/api/cs/classkinetica_1_1ExecuteSqlResponse" title="A set of results returned by Kinetica.executeSql.">ExecuteSqlResponse</a> containing the results.</div>
        </div>

        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L333">333</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <div id="a91673a6cee38c0f07f4d8a8a90710ba1" />

    <h2 className="memtitle"><span className="permalink"><a href="#a91673a6cee38c0f07f4d8a8a90710ba1">◆ </a></span>GetWorkerIndexForKey()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">int kinetica.Utils.GenericRecordRetriever.GetWorkerIndexForKey </td>
                  <td>(</td>
                  <td className="paramtype">IDictionary\< string, object?></td>
                  <td className="paramname"><span className="paramname"><span className="em">keyValues</span></span></td>
                  <td>)</td>

                  <td />
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Computes the worker index that would handle records with the given key values. </p>
        <p>This is useful for understanding data distribution.</p>

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

          <div className="dd">
            <table className="params">
              <tr>
                <td className="paramname">keyValues</td>
                <td>Dictionary of column name -> value for the shard key columns.</td>
              </tr>
            </table>
          </div>
        </div>

        <div className="dl section return">
          <div className="dt">Returns</div>
          <div className="dd">The worker index (0-based), or -1 if routing is not possible.</div>
        </div>

        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L447">447</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <div id="a740c29d122450de68d3d772299a8eb35" />

    <h2 className="memtitle"><span className="permalink"><a href="#a740c29d122450de68d3d772299a8eb35">◆ </a></span>HasAllShardKeyValues()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">bool kinetica.Utils.GenericRecordRetriever.HasAllShardKeyValues </td>
                  <td>(</td>
                  <td className="paramtype">IDictionary\< string, object?></td>
                  <td className="paramname"><span className="paramname"><span className="em">keyValues</span></span></td>
                  <td>)</td>

                  <td />
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Checks if the given key values contain all required shard key columns. </p>

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

          <div className="dd">
            <table className="params">
              <tr>
                <td className="paramname">keyValues</td>
                <td>Dictionary of column name -> value.</td>
              </tr>
            </table>
          </div>
        </div>

        <div className="dl section return">
          <div className="dt">Returns</div>
          <div className="dd">True if all shard key columns are present.</div>
        </div>

        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L427">427</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <h2 className="groupheader">Property Documentation</h2>

    <div id="a58fb7ca1c3a2bee613abcd3f6de9e2cf" />

    <h2 className="memtitle"><span className="permalink"><a href="#a58fb7ca1c3a2bee613abcd3f6de9e2cf">◆ </a></span>HARingSize</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">int kinetica.Utils.GenericRecordRetriever.HARingSize</td>
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Gets the HA ring size. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L68">68</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <div id="aac5eb62d21642f90b93b1b1e249698da" />

    <h2 className="memtitle"><span className="permalink"><a href="#aac5eb62d21642f90b93b1b1e249698da">◆ </a></span>KineticaDB</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname"><a className="el" href="/content/api/cs/classkinetica_1_1Kinetica">Kinetica</a> kinetica.Utils.GenericRecordRetriever.KineticaDB</td>
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Gets the <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> connection. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L48">48</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <div id="accc65c65f54d113de447271c9d9d2ad4" />

    <h2 className="memtitle"><span className="permalink"><a href="#accc65c65f54d113de447271c9d9d2ad4">◆ </a></span>KType</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname"><a className="el" href="/content/api/cs/classkinetica_1_1KineticaType">KineticaType</a> kinetica.Utils.GenericRecordRetriever.KType</td>
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Gets the <a className="el" href="/content/api/cs/classkinetica_1_1KineticaType" title="Describes a Kinetica record type — its columns, properties, and Avro schema — and can create the type...">KineticaType</a> for the table. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L58">58</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <div id="aa5ecdb867b7c5c4263e45fe0b59f2f80" />

    <h2 className="memtitle"><span className="permalink"><a href="#aa5ecdb867b7c5c4263e45fe0b59f2f80">◆ </a></span>MultiHeadEnabled</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">bool kinetica.Utils.GenericRecordRetriever.MultiHeadEnabled</td>
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Gets whether multi-head retrieval is enabled. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L73">73</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <div id="a14bb628be1bece34c61b5458c659bb44" />

    <h2 className="memtitle"><span className="permalink"><a href="#a14bb628be1bece34c61b5458c659bb44">◆ </a></span>NumClusterSwitches</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">int kinetica.Utils.GenericRecordRetriever.NumClusterSwitches</td>
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Gets the number of cluster switches due to HA failover. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L63">63</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <div id="a9b98784a77b818cbbb14cd5189465978" />

    <h2 className="memtitle"><span className="permalink"><a href="#a9b98784a77b818cbbb14cd5189465978">◆ </a></span>ShardKeyColumnNames</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">IList\<string> kinetica.Utils.GenericRecordRetriever.ShardKeyColumnNames</td>
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Gets the shard key column names, or empty if table is not sharded. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L78">78</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <div id="a8b21e8f5801e937885441c45c5c994ec" />

    <h2 className="memtitle"><span className="permalink"><a href="#a8b21e8f5801e937885441c45c5c994ec">◆ </a></span>TableName</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">string kinetica.Utils.GenericRecordRetriever.TableName</td>
                </tr>
              </table>
            </td>

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

      <div className="memdoc">
        <p>Gets the table name. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs#L53">53</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a>.</p>
      </div>
    </div>

    <hr />

    The documentation for this class was generated from the following file:

    <ul>
      <li>Kinetica/Utils/<a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/GenericRecordRetriever.cs">GenericRecordRetriever.cs</a></li>
    </ul>
  </div>
</div>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.