Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 71d40963b505df4524269198e237b3e3 > files > 298

virtuoso-opensource-doc-6.1.4-2.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
 <head profile="http://internetalchemy.org/2003/02/profile">
  <link rel="foaf" type="application/rdf+xml" title="FOAF" href="http://www.openlinksw.com/dataspace/uda/about.rdf" />
  <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
  <meta name="dc.title" content="Function: gvector_digit_sort - Virtuoso Functions Guide" />
  <meta name="dc.subject" content="Function: gvector_digit_sort - Virtuoso Functions Guide" />
  <meta name="dc.creator" content="OpenLink Software Documentation Team ;&#10;" />
  <meta name="dc.copyright" content="OpenLink Software, 1999 - 2009" />
  <link rel="top" href="index.html" title="OpenLink Virtuoso Universal Server: Documentation" />
  <link rel="search" href="/doc/adv_search.vspx" title="Search OpenLink Virtuoso Universal Server: Documentation" />
  <link rel="parent" href="functions.html" title="Chapter Contents" />
  <link rel="prev" href="appendixa.html" title="Appendix" />
  <link rel="next" href="functions.html#.html" title="" />
  <link rel="shortcut icon" href="../images/misc/favicon.ico" type="image/x-icon" />
  <link rel="stylesheet" type="text/css" href="doc.css" />
  <link rel="stylesheet" type="text/css" href="/doc/translation.css" />
  <title>Function: gvector_digit_sort - Virtuoso Functions Guide</title>
  <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
  <meta name="author" content="OpenLink Software Documentation Team ;&#10;" />
  <meta name="copyright" content="OpenLink Software, 1999 - 2009" />
  <meta name="keywords" content="" />
  <meta name="GENERATOR" content="OpenLink XSLT Team" />
 </head>
 <body>
  <div id="header">
    <a name="fn_gvector_digit_sort" />
    <img src="../images/misc/logo.jpg" alt="" />
    <h1>22. Virtuoso Functions Guide - gvector_digit_sort</h1>
  </div>
  <div id="navbartop">
   <div>
      <a class="link" href="functions.html">Chapter Contents</a> | <a class="link" href="fn_gvector_sort.html" title="gvector_sort">Prev</a> | <a class="link" href="fn_isarray.html" title="isarray">Next</a>
   </div>
  </div>
  <div id="currenttoc">
   <form method="post" action="/doc/adv_search.vspx">
    <div class="search">Keyword Search: <br />
        <input type="text" name="q" /> <input type="submit" name="go" value="Go" />
    </div>
   </form>
   <div>
      <a href="http://www.openlinksw.com/">www.openlinksw.com</a>
   </div>
   <div>
      <a href="http://docs.openlinksw.com/">docs.openlinksw.com</a>
   </div>
    <br />
   <div>
      <a href="index.html">Book Home</a>
   </div>
    <br />
   <div>
      <a href="contents.html">Contents</a>
   </div>
   <div>
      <a href="preface.html">Preface</a>
   </div>
    <br />
   <div>
      <a class="selected" href="functions.html">Virtuoso Functions Guide</a>
   </div>
    <br />
   <div>
      <a href="functions.html#admin">Administration</a>
   </div>
   <div>
      <a href="functions.html#aggr">Aggregate Functions</a>
   </div>
   <div>
      <a class="selected" href="functions.html#array">Array Manipulation</a>
   </div>
   <div class="selected">
    <div>
        <a href="fn_aref.html">aref</a>
    </div>
    <div>
        <a href="fn_aset.html">aset</a>
    </div>
    <div>
        <a href="fn_concat.html">concat</a>
    </div>
    <div>
        <a href="fn_concatenate.html">concatenate</a>
    </div>
    <div>
        <a href="fn_dvector.html">dvector</a>
    </div>
    <div>
        <a href="fn_get_keyword.html">get_keyword</a>
    </div>
    <div>
        <a href="fn_get_keyword_ucase.html">get_keyword_ucase</a>
    </div>
    <div>
        <a class="selected" href="fn_gvector_digit_sort.html">gvector_digit_sort</a>
    </div>
    <div>
        <a href="fn_gvector_sort.html">gvector_sort</a>
    </div>
    <div>
        <a href="fn_isarray.html">isarray</a>
    </div>
    <div>
        <a href="fn_make_array.html">make_array</a>
    </div>
    <div>
        <a href="fn_position.html">position</a>
    </div>
    <div>
        <a href="fn_rowvector_digit_sort.html">rowvector_digit_sort</a>
    </div>
    <div>
        <a href="fn_serialize.html">serialize</a>
    </div>
    <div>
        <a href="fn_split_and_decode.html">split_and_decode</a>
    </div>
    <div>
        <a href="fn_tree_md5.html">tree_md5</a>
    </div>
    <div>
        <a href="fn_vector.html">vector</a>
    </div>
    <div>
        <a href="fn_vector_concat.html">vector_concat</a>
    </div>
   </div>
   <div>
      <a href="functions.html#bpel">BPEL APIs</a>
   </div>
   <div>
      <a href="functions.html#backup">Backup</a>
   </div>
   <div>
      <a href="functions.html#compression">Compression</a>
   </div>
   <div>
      <a href="functions.html#cursors">Cursor</a>
   </div>
   <div>
      <a href="functions.html#time">Date &amp; Time Manipulation</a>
   </div>
   <div>
      <a href="functions.html#debug">Debug</a>
   </div>
   <div>
      <a href="functions.html#dict">Dictionary Manipulation</a>
   </div>
   <div>
      <a href="functions.html#encoding">Encoding &amp; Decoding</a>
   </div>
   <div>
      <a href="functions.html#file">File Manipulation</a>
   </div>
   <div>
      <a href="functions.html#ft">Free Text</a>
   </div>
   <div>
      <a href="functions.html#hash">Hashing / Cryptographic</a>
   </div>
   <div>
      <a href="functions.html#ldap">LDAP</a>
   </div>
   <div>
      <a href="functions.html#localization">Locale</a>
   </div>
   <div>
      <a href="functions.html#mail">Mail</a>
   </div>
   <div>
      <a href="functions.html#misc">Miscellaneous</a>
   </div>
   <div>
      <a href="functions.html#number">Number</a>
   </div>
   <div>
      <a href="functions.html#phrz">Phrases</a>
   </div>
   <div>
      <a href="functions.html#rdf">RDF data</a>
   </div>
   <div>
      <a href="functions.html#rmt">Remote SQL Data Source</a>
   </div>
   <div>
      <a href="functions.html#repl">Replication</a>
   </div>
   <div>
      <a href="functions.html#soap">SOAP</a>
   </div>
   <div>
      <a href="functions.html#sql">SQL</a>
   </div>
   <div>
      <a href="functions.html#string">String</a>
   </div>
   <div>
      <a href="functions.html#txn">Transaction</a>
   </div>
   <div>
      <a href="functions.html#type">Type Mapping</a>
   </div>
   <div>
      <a href="functions.html#uddi">UDDI</a>
   </div>
   <div>
      <a href="functions.html#udt">User Defined Types &amp; The CLR</a>
   </div>
   <div>
      <a href="functions.html#vad">VAD</a>
   </div>
   <div>
      <a href="functions.html#jvmpl">Virtuoso Java PL API</a>
   </div>
   <div>
      <a href="functions.html#bif">Virtuoso Server Extension Interface (VSEI)</a>
   </div>
   <div>
      <a href="functions.html#ws">Web &amp; Internet</a>
   </div>
   <div>
      <a href="functions.html#xml">XML</a>
   </div>
   <div>
      <a href="functions.html#XPATH">XPATH &amp; XQUERY</a>
   </div>
    <br />
   <div>
      <a href="functionidx.html">Functions Index</a>
   </div>
    <br />
  </div>
  <div id="text">
    <h2>gvector_digit_sort</h2>
    <div class="refpurpose">Performs a stable &quot;digit&quot; sort of a given array.</div>
    <div class="funcsynopsis">
        <span class="funcdef">
     <span class="function">gvector_digit_sort</span>
     </span>
	(<span class="paramdef">inout <span class="parameter">data</span> vector</span>, 
	<span class="paramdef">in <span class="parameter">elements_in_group</span> integer</span>, 
	<span class="paramdef">in <span class="parameter">key_idx_in_group</span> integer</span>, 
	<span class="paramdef">in <span class="parameter">sort_ascending</span> integer</span>);
      </div>
  
  
  
  <div class="refsect1">
    <div class="refsect1title">Description</div>
    <p>The function gets an vector that consists of groups of elements.
All groups are of equal size, namely <span class="computeroutput">elements_in_group</span>, so the total length of <span class="computeroutput">data</span> vector
should be whole multiple of <span class="computeroutput">elements_in_group</span>.
One element of each group is a key of sorting; it is identified by its zero-based position within the group, <span class="computeroutput">key_idx_in_group</span>.
The sorting procedure edits <span class="computeroutput">data</span> and reorders groups in such a way that their keys become ordered ascending or descending,
depending on <span class="computeroutput">sort_ascending</span> flag.</p>
<p>The simplest case is plain sorting of a uniform array. In this case every element is an individual group, <span class="computeroutput">elements_in_group</span> is 1
and <span class="computeroutput">key_idx_in_group</span> is 0.</p>
<p>Other popular case is sorting of result of <a href="fn_dict_to_vector.html">dict_to_vector</a>().
In this case, every item of the original dictionary is represended in the vector by a pair of elements (<span class="computeroutput">elements_in_group</span> is 2),
so to sort items by their keys, the <span class="computeroutput">key_idx_in_group</span> is 0 and to sort them by associated values,
the <span class="computeroutput">key_idx_in_group</span> is 1.</p>
<p>The performed sorting is stable. It means that it will not permutate groups in vain: it will preserve the relative order of any two groups that have equal keys.
Using this property, one may sort groups by a &quot;secondary&quot; key and then by &quot;primary&quot; key.
E.g., if each group contain elements for country code and province code then it is possible to make two-field sorting by sorting first by province and then by country;
that will work even if province codes are not globally unique (say, if they&#39;re enumerated from 1 in each country).</p>
<p>This function supports only integer values of sorting keys. To sort by strings, floating-point numbers etc., use
<a href="fn_gvector_sort.html">gvector_sort</a>().
However, out of these two similar functions, only gvector_digit_sort() is stable-sort.</p>
  </div>
  <div class="refsect1">
    <div class="refsect1title">Parameters</div>
    <div class="refsect2">
        <span class="refsect2title">data – </span>
      A group vector (gvector) to sort.
    </div>
    <div class="refsect2">
        <span class="refsect2title">elements_in_group – </span>
      The number of vector elements in every group, usually 1, should be in range 1 to 1024.
    </div>
    <div class="refsect2">
        <span class="refsect2title">key_idx_in_group – </span>
      Zero-based position of key element in group, should be nonnegative and less than <span class="computeroutput">elements_in_group</span>.
    </div>
    <div class="refsect2">
        <span class="refsect2title">sort_ascending – </span>
      Direction of sorting, nonzero for ascending sort, zero for descending.
    </div>
  </div>
  <div class="refsect1">
      <div class="refsect1title">Return Types</div>
    <p>The function returns number of groups in the <span class="computeroutput">data</span> vector</p>.
  </div>

  <div class="refsect1">
    <div class="refsect1title">See Also</div>
    <p>
        <a href="fn_gvector_sort.html">gvector_sort</a>
      </p>
    <p>
        <a href="fn_rowvector_digit_sort.html">rowvector_digit_sort</a>
      </p>

  </div>
</div>
  <div id="footer">
    <div>Copyright© 1999 - 2009 OpenLink Software All rights reserved.</div>
   <div id="validation">
    <a href="http://validator.w3.org/check/referer">
        <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" />
    </a>
    <a href="http://jigsaw.w3.org/css-validator/">
        <img src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" height="31" width="88" />
    </a>
   </div>
  </div>
 </body>
</html>