Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
dbh_genkey(3)	       DBHashTables Programmers' Manual		 dbh_genkey(3)

-

NAME
       dbh_genkey,  dbh_genkey2, dbh_orderkey -	generate cuantified or ordered
       keys

SYNOPSIS
       #include	<dbh.h>

       void dbh_genkey (unsigned char *key, unsigned char length, unsigned int
       n);
       void dbh_genkey2	(unsigned char *key, unsigned  char  length,  unsigned
       int n);
       void  dbh_orderkey  (unsigned char *key,	unsigned char length, unsigned
       int n, unsigned char base);

DESCRIPTION
       dbh_genkey and dbh_genkey2 obtain a key from  a	secuential  series  of
       natural	numbers	 (positive  integers without zero) which does not con-
       serve the order of the natural numbers, but  which  are	optimized  for
       construction  of	 a  balanced  hash  tree. In dbh_genkey	the key	is ex-
       pressed in cuantified numbers based on the 0 digit. In dbh_genkey2  the
       key is expressed	in cuantified numbers based on the A symbol.

       dbh_orderkey will obtain	a key from a secuential	series of natural num-
       bers  (positive integers	without	zero) which conserves the order	of the
       natural numbers.	This function generates	a key that belongs to a	finite
       subset of the cuantified	numbers, but which preserves the order of  the
       natural numbers (up to the supreme, of course).

       In  these functions key is pointer to the address where to put the gen-
       erated key, length is the key length, and n is the natural  number  for
       which  to  generate the key. For	dbh_orderkey base is the number	system
       base to use. This will equal the	maximum	number of  nodes  per  branch.
       This  ---along  with  the keylength--- will  define a maximum number of
       records for the DBHashTable.

RETURN VALUE
       These functions do not return any value.

NOTES
       Cuantified numbers are an alternate way to view the set of natural num-
       bers {1,	2, 3, ...} where order is defined in two  levels.  In  natural
       numbers	there is only one level	of order (defined by the > boolean op-
       erator).	In cuantified numbers the first	level of order is  defined  by
       the cuanta or quantity. The cuanta is obtained by adding	all the	digits
       of  the	cuantified number.  Thus, for example, 10022, 5, 32, and 11111
       are all equal at	the first level	of order since they all	add up	to  5.
       The  second  level  or  order  may be obtained in different manners. In
       functions dbh_genkey and	dbh_genkey2 the	 corresponding	order  of  the
       natural	numbers	 from  which they are associated is not	conserved.  In
       dbh_orderkey the	corresponding order of the natural numbers from	 which
       they  are associated is conserved, but at a price. The base, or maximum
       value each digit	may reach, must	be defined. This  effectively  puts  a
       limit  on  the number of	keys which may be generated for	a given	number
       of digits.

       When a DBHashTable is constructed with  cuantified  keys,  the  maximum
       amount of disk access instructions generated to access any given	record
       is equal	to the cuanta of the cuantified	number represented by the key.
       This  allows  a	DBHashTable to be constructed with minimum access time
       across all records.

SEE ALSO
       dbh (0),	dbh_update (3),	dbh_load (3)

Author
       Edscott Wilson Garcia <edscott@xfce.org>

DBHashTables			      DBH			 dbh_genkey(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dbh_genkey2&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help