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

FreeBSD Manual Pages

  
 
  

home | help
TCHDB(3)			 Tokyo Cabinet			      TCHDB(3)

NAME
       tchdb - the hash	database API

DESCRIPTION
       Hash database is	a file containing a hash table and is handled with the
       hash database API.

       To  use	the  hash database API,	include	`tcutil.h', `tchdb.h', and re-
       lated standard header files.  Usually, write the	following  description
       near the	front of a source file.

	      #include <tcutil.h>
	      #include <tchdb.h>
	      #include <stdlib.h>
	      #include <time.h>
	      #include <stdbool.h>
	      #include <stdint.h>

       Objects	whose type is pointer to `TCHDB' are used to handle hash data-
       bases.  A hash database object is created with the function  `tchdbnew'
       and  is deleted with the	function `tchdbdel'.  To avoid memory leak, it
       is important to delete every object when	it is no longer	in use.

       Before operations to store or retrieve records, it is necessary to open
       a database file and connect the hash database object to it.  The	 func-
       tion  `tchdbopen'  is  used  to	open  a	database file and the function
       `tchdbclose' is used to close the database file.	 To avoid data missing
       or corruption, it is important to close every database file when	it  is
       no  longer  in use.  It is forbidden for	multible database objects in a
       process to open the same	database at the	same time.

API
       The function `tchdberrmsg' is used in order to get the  message	string
       corresponding to	an error code.

	      const char *tchdberrmsg(int ecode);
		     `ecode' specifies the error code.
		     The return	value is the message string of the error code.

       The  function `tchdbnew'	is used	in order to create a hash database ob-
       ject.

	      TCHDB *tchdbnew(void);
		     The return	value is the new hash database object.

       The function `tchdbdel' is used in order	to delete a hash database  ob-
       ject.

	      void tchdbdel(TCHDB *hdb);
		     `hdb' specifies the hash database object.
		     If	 the  database is not closed, it is closed implicitly.
		     Note that the deleted object and its derivatives can  not
		     be	used anymore.

       The function `tchdbecode' is used in order to get the last happened er-
       ror code	of a hash database object.

	      int tchdbecode(TCHDB *hdb);
		     `hdb' specifies the hash database object.
		     The return	value is the last happened error code.
		     The  following  error codes are defined: `TCESUCCESS' for
		     success, `TCETHREAD' for  threading  error,  `TCEINVALID'
		     for  invalid  operation,  `TCENOFILE' for file not	found,
		     `TCENOPERM' for no	permission, `TCEMETA' for invalid meta
		     data, `TCERHEAD' for invalid record header, `TCEOPEN' for
		     open error, `TCECLOSE' for	close  error,  `TCETRUNC'  for
		     trunc error, `TCESYNC' for	sync error, `TCESTAT' for stat
		     error,  `TCESEEK'	for seek error,	`TCEREAD' for read er-
		     ror, `TCEWRITE' for write error, `TCEMMAP'	for  mmap  er-
		     ror, `TCELOCK' for	lock error, `TCEUNLINK'	for unlink er-
		     ror,  `TCERENAME'	for rename error, `TCEMKDIR' for mkdir
		     error, `TCERMDIR' for rmdir error,	`TCEKEEP' for existing
		     record, `TCENOREC'	for no record found, and `TCEMISC' for
		     miscellaneous error.

       The function `tchdbsetmutex' is used in order to	set  mutual  exclusion
       control of a hash database object for threading.

	      bool tchdbsetmutex(TCHDB *hdb);
		     `hdb'  specifies  the  hash  database object which	is not
		     opened.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.
		     Note  that	 the  mutual exclusion control of the database
		     should be set before the database is opened.

       The function `tchdbtune'	is used	in order to set	the tuning  parameters
       of a hash database object.

	      bool  tchdbtune(TCHDB  *hdb,  int64_t  bnum, int8_t apow,	int8_t
	      fpow, uint8_t opts);
		     `hdb' specifies the hash database	object	which  is  not
		     opened.
		     `bnum' specifies the number of elements of	the bucket ar-
		     ray.   If	it  is	not  more than 0, the default value is
		     specified.	 The default value is 16381.   Suggested  size
		     of	 the  bucket array is about from 0.5 to	4 times	of the
		     number of all records to be stored.
		     `apow' specifies the size of record alignment by power of
		     2.	 If it is negative, the	default	 value	is  specified.
		     The default value is 4 standing for 2^4=16.
		     `fpow'  specifies	the  maximum number of elements	of the
		     free block	pool by	power of 2.  If	it  is	negative,  the
		     default  value  is	 specified.   The  default value is 10
		     standing for 2^10=1024.
		     `opts' specifies options by bitwise-or: `HDBTLARGE' spec-
		     ifies that	the size of the	database can  be  larger  than
		     2GB by using 64-bit bucket	array, `HDBTDEFLATE' specifies
		     that  each	 record	 is  compressed	with Deflate encoding,
		     `HDBTBZIP'	specifies that each record is compressed  with
		     BZIP2  encoding, `HDBTTCBS' specifies that	each record is
		     compressed	with TCBS encoding.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.
		     Note  that	the tuning parameters should be	set before the
		     database is opened.

       The function `tchdbsetcache' is used in order to	set the	caching	 para-
       meters of a hash	database object.

	      bool tchdbsetcache(TCHDB *hdb, int32_t rcnum);
		     `hdb'  specifies  the  hash  database object which	is not
		     opened.
		     `rcnum' specifies the maximum number  of  records	to  be
		     cached.   If  it  is not more than	0, the record cache is
		     disabled.	It is disabled by default.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.
		     Note that the caching parameters should be	set before the
		     database is opened.

       The  function  `tchdbsetxmsiz'  is used in order	to set the size	of the
       extra mapped memory of a	hash database object.

	      bool tchdbsetxmsiz(TCHDB *hdb, int64_t xmsiz);
		     `hdb' specifies the hash database	object	which  is  not
		     opened.
		     `xmsiz'  specifies	 the  size of the extra	mapped memory.
		     If	it is not more than 0, the extra mapped	memory is dis-
		     abled.  The default size is 67108864.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.
		     Note that the mapping parameters should be	set before the
		     database is opened.

       The  function  `tchdbsetdfunit'	is  used in order to set the unit step
       number of auto defragmentation of a hash	database object.

	      bool tchdbsetdfunit(TCHDB	*hdb, int32_t dfunit);
		     `hdb' specifies the hash database	object	which  is  not
		     opened.
		     `dfunit'  specifie	 the  unit  step number.  If it	is not
		     more than 0, the auto defragmentation is disabled.	 It is
		     disabled by default.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.
		     Note  that	 the  defragmentation parameters should	be set
		     before the	database is opened.

       The function `tchdbopen'	is used	in order to open a database  file  and
       connect a hash database object.

	      bool tchdbopen(TCHDB *hdb, const char *path, int omode);
		     `hdb'  specifies  the  hash  database object which	is not
		     opened.
		     `path' specifies the path of the database file.
		     `omode' specifies the connection mode: `HDBOWRITER' as  a
		     writer,  `HDBOREADER'  as	a reader.  If the mode is `HD-
		     BOWRITER',	the following may be added by bitwise-or: `HD-
		     BOCREAT', which means it creates a	new  database  if  not
		     exist, `HDBOTRUNC', which means it	creates	a new database
		     regardless	 if one	exists,	`HDBOTSYNC', which means every
		     transaction synchronizes updated contents	with  the  de-
		     vice.  Both of `HDBOREADER' and `HDBOWRITER' can be added
		     to	 by  bitwise-or: `HDBONOLCK', which means it opens the
		     database file without file	locking, or `HDBOLCKNB', which
		     means locking is performed	without	blocking.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.

       The function `tchdbclose' is used in order to close a hash database ob-
       ject.

	      bool tchdbclose(TCHDB *hdb);
		     `hdb' specifies the hash database object.
		     If	 successful,  the  return  value  is true, else, it is
		     false.
		     Update of a database is assured to	be  written  when  the
		     database  is  closed.   If	 a writer opens	a database but
		     does not close it appropriately,  the  database  will  be
		     broken.

       The  function `tchdbput'	is used	in order to store a record into	a hash
       database	object.

	      bool tchdbput(TCHDB *hdb,	const void *kbuf, int ksiz, const void
	      *vbuf, int vsiz);
		     `hdb' specifies the hash database object connected	 as  a
		     writer.
		     `kbuf' specifies the pointer to the region	of the key.
		     `ksiz' specifies the size of the region of	the key.
		     `vbuf' specifies the pointer to the region	of the value.
		     `vsiz' specifies the size of the region of	the value.
		     If	 successful,  the  return  value  is true, else, it is
		     false.
		     If	a record with the same key exists in the database,  it
		     is	overwritten.

       The function `tchdbput2'	is used	in order to store a string record into
       a hash database object.

	      bool tchdbput2(TCHDB *hdb, const char *kstr, const char *vstr);
		     `hdb'  specifies  the hash	database object	connected as a
		     writer.
		     `kstr' specifies the string of the	key.
		     `vstr' specifies the string of the	value.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.
		     If	 a record with the same	key exists in the database, it
		     is	overwritten.

       The function `tchdbputkeep' is used in order to store a new record into
       a hash database object.

	      bool tchdbputkeep(TCHDB *hdb, const void *kbuf, int ksiz,	 const
	      void *vbuf, int vsiz);
		     `hdb'  specifies  the hash	database object	connected as a
		     writer.
		     `kbuf' specifies the pointer to the region	of the key.
		     `ksiz' specifies the size of the region of	the key.
		     `vbuf' specifies the pointer to the region	of the value.
		     `vsiz' specifies the size of the region of	the value.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.
		     If	 a  record  with  the same key exists in the database,
		     this function has no effect.

       The function `tchdbputkeep2' is used in order to	 store	a  new	string
       record into a hash database object.

	      bool  tchdbputkeep2(TCHDB	 *hdb,	const  char  *kstr, const char
	      *vstr);
		     `hdb' specifies the hash database object connected	 as  a
		     writer.
		     `kstr' specifies the string of the	key.
		     `vstr' specifies the string of the	value.
		     If	 successful,  the  return  value  is true, else, it is
		     false.
		     If	a record with the same key  exists  in	the  database,
		     this function has no effect.

       The  function  `tchdbputcat' is used in order to	concatenate a value at
       the end of the existing record in a hash	database object.

	      bool tchdbputcat(TCHDB *hdb, const void *kbuf, int  ksiz,	 const
	      void *vbuf, int vsiz);
		     `hdb'  specifies  the hash	database object	connected as a
		     writer.
		     `kbuf' specifies the pointer to the region	of the key.
		     `ksiz' specifies the size of the region of	the key.
		     `vbuf' specifies the pointer to the region	of the value.
		     `vsiz' specifies the size of the region of	the value.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.
		     If	there is no corresponding record, a new	record is cre-
		     ated.

       The  function  `tchdbputcat2'  is used in order to concatenate a	string
       value at	the end	of the existing	record in a hash database object.

	      bool tchdbputcat2(TCHDB  *hdb,  const  char  *kstr,  const  char
	      *vstr);
		     `hdb'  specifies  the hash	database object	connected as a
		     writer.
		     `kstr' specifies the string of the	key.
		     `vstr' specifies the string of the	value.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.
		     If	there is no corresponding record, a new	record is cre-
		     ated.

       The  function `tchdbputasync' is	used in	order to store a record	into a
       hash database object in asynchronous fashion.

	      bool tchdbputasync(TCHDB *hdb, const void	*kbuf, int ksiz, const
	      void *vbuf, int vsiz);
		     `hdb' specifies the hash database object connected	 as  a
		     writer.
		     `kbuf' specifies the pointer to the region	of the key.
		     `ksiz' specifies the size of the region of	the key.
		     `vbuf' specifies the pointer to the region	of the value.
		     `vsiz' specifies the size of the region of	the value.
		     If	 successful,  the  return  value  is true, else, it is
		     false.
		     If	a record with the same key exists in the database,  it
		     is	 overwritten.  Records passed to this function are ac-
		     cumulated into the	inner buffer and wrote into  the  file
		     at	a blast.

       The function `tchdbputasync2' is	used in	order to store a string	record
       into a hash database object in asynchronous fashion.

	      bool  tchdbputasync2(TCHDB  *hdb,	 const	char *kstr, const char
	      *vstr);
		     `hdb' specifies the hash database object connected	 as  a
		     writer.
		     `kstr' specifies the string of the	key.
		     `vstr' specifies the string of the	value.
		     If	 successful,  the  return  value  is true, else, it is
		     false.
		     If	a record with the same key exists in the database,  it
		     is	 overwritten.  Records passed to this function are ac-
		     cumulated into the	inner buffer and wrote into  the  file
		     at	a blast.

       The  function  `tchdbout' is used in order to remove a record of	a hash
       database	object.

	      bool tchdbout(TCHDB *hdb,	const void *kbuf, int ksiz);
		     `hdb' specifies the hash database object connected	 as  a
		     writer.
		     `kbuf' specifies the pointer to the region	of the key.
		     `ksiz' specifies the size of the region of	the key.
		     If	 successful,  the  return  value  is true, else, it is
		     false.

       The function `tchdbout2'	is used	in order to remove a string record  of
       a hash database object.

	      bool tchdbout2(TCHDB *hdb, const char *kstr);
		     `hdb'  specifies  the hash	database object	connected as a
		     writer.
		     `kstr' specifies the string of the	key.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.

       The function `tchdbget' is used in order	to retrieve a record in	a hash
       database	object.

	      void *tchdbget(TCHDB *hdb, const void *kbuf, int ksiz, int *sp);
		     `hdb' specifies the hash database object.
		     `kbuf' specifies the pointer to the region	of the key.
		     `ksiz' specifies the size of the region of	the key.
		     `sp' specifies the	pointer	to the variable	into which the
		     size of the region	of the return value is assigned.
		     If	successful, the	return value is	the pointer to the re-
		     gion of the value of the corresponding record.  `NULL' is
		     returned if no record corresponds.
		     Because an	additional zero	code is	appended at the	end of
		     the  region  of the return	value, the return value	can be
		     treated as	a character string.  Because the region	of the
		     return value is allocated	with  the  `malloc'  call,  it
		     should  be	 released  with	 the `free' call when it is no
		     longer in use.

       The function `tchdbget2'	is used	in order to retrieve a	string	record
       in a hash database object.

	      char *tchdbget2(TCHDB *hdb, const	char *kstr);
		     `hdb' specifies the hash database object.
		     `kstr' specifies the string of the	key.
		     If	 successful,  the  return  value  is the string	of the
		     value of the corresponding	record.	 `NULL'	is returned if
		     no	record corresponds.
		     Because the region	of the return value is allocated  with
		     the  `malloc' call, it should be released with the	`free'
		     call when it is no	longer in use.

       The function `tchdbget3'	is used	in order to retrieve  a	 record	 in  a
       hash database object and	write the value	into a buffer.

	      int  tchdbget3(TCHDB  *hdb,  const  void	*kbuf,	int ksiz, void
	      *vbuf, int max);
		     `hdb' specifies the hash database object.
		     `kbuf' specifies the pointer to the region	of the key.
		     `ksiz' specifies the size of the region of	the key.
		     `vbuf' specifies the pointer to the buffer	into which the
		     value of the corresponding	record is written.
		     `max' specifies the size of the buffer.
		     If	successful, the	return value is	the size of the	 writ-
		     ten  data,	 else,	it is -1.  -1 is returned if no	record
		     corresponds to the	specified key.
		     Note that an additional zero code is not appended at  the
		     end of the	region of the writing buffer.

       The  function `tchdbvsiz' is used in order to get the size of the value
       of a record in a	hash database object.

	      int tchdbvsiz(TCHDB *hdb,	const void *kbuf, int ksiz);
		     `hdb' specifies the hash database object.
		     `kbuf' specifies the pointer to the region	of the key.
		     `ksiz' specifies the size of the region of	the key.
		     If	successful, the	return value is	the size of the	 value
		     of	the corresponding record, else,	it is -1.

       The function `tchdbvsiz2' is used in order to get the size of the value
       of a string record in a hash database object.

	      int tchdbvsiz2(TCHDB *hdb, const char *kstr);
		     `hdb' specifies the hash database object.
		     `kstr' specifies the string of the	key.
		     If	 successful, the return	value is the size of the value
		     of	the corresponding record, else,	it is -1.

       The function `tchdbiterinit' is used in order to	initialize the	itera-
       tor of a	hash database object.

	      bool tchdbiterinit(TCHDB *hdb);
		     `hdb' specifies the hash database object.
		     If	 successful,  the  return  value  is true, else, it is
		     false.
		     The iterator is used in order to access the key of	 every
		     record stored in a	database.

       The  function  `tchdbiternext'  is used in order	to get the next	key of
       the iterator of a hash database object.

	      void *tchdbiternext(TCHDB	*hdb, int *sp);
		     `hdb' specifies the hash database object.
		     `sp' specifies the	pointer	to the variable	into which the
		     size of the region	of the return value is assigned.
		     If	successful, the	return value is	the pointer to the re-
		     gion of the next key, else, it is `NULL'.	`NULL' is  re-
		     turned when no record is to be get	out of the iterator.
		     Because an	additional zero	code is	appended at the	end of
		     the  region  of the return	value, the return value	can be
		     treated as	a character string.  Because the region	of the
		     return value is allocated	with  the  `malloc'  call,  it
		     should  be	 released  with	 the `free' call when it is no
		     longer in use.  It	is possible to access every record  by
		     iteration of calling this function.  It is	allowed	to up-
		     date  or  remove records whose keys are fetched while the
		     iteration.	 However, it is	not assured  if	 updating  the
		     database  is  occurred while the iteration.  Besides, the
		     order of this traversal access method is arbitrary, so it
		     is	not assured that the order of storing matches the  one
		     of	the traversal access.

       The  function  `tchdbiternext2'	is  used  in order to get the next key
       string of the iterator of a hash	database object.

	      char *tchdbiternext2(TCHDB *hdb);
		     `hdb' specifies the hash database object.
		     If	successful, the	return value is	the string of the next
		     key, else,	it is `NULL'.	`NULL'	is  returned  when  no
		     record is to be get out of	the iterator.
		     Because  the region of the	return value is	allocated with
		     the `malloc' call,	it should be released with the	`free'
		     call  when	it is no longer	in use.	 It is possible	to ac-
		     cess every	record by iteration of calling this  function.
		     However,  it  is  not assured if updating the database is
		     occurred while the	iteration.  Besides, the order of this
		     traversal access method is	arbitrary, so it  is  not  as-
		     sured  that  the  order of	storing	matches	the one	of the
		     traversal access.

       The function `tchdbiternext3' is	used in	order to get the next extensi-
       ble objects of the iterator of a	hash database object.

	      bool tchdbiternext3(TCHDB	*hdb, TCXSTR *kxstr, TCXSTR *vxstr);
		     `hdb' specifies the hash database object.
		     `kxstr' specifies the object into which the next  key  is
		     wrote down.
		     `vxstr' specifies the object into which the next value is
		     wrote down.
		     If	 successful,  the  return  value  is true, else, it is
		     false.  False is returned when no record is to be get out
		     of	the iterator.

       The function `tchdbfwmkeys' is used in order to	get  forward  matching
       keys in a hash database object.

	      TCLIST *tchdbfwmkeys(TCHDB *hdb, const void *pbuf, int psiz, int
	      max);
		     `hdb' specifies the hash database object.
		     `pbuf' specifies the pointer to the region	of the prefix.
		     `psiz' specifies the size of the region of	the prefix.
		     `max' specifies the maximum number	of keys	to be fetched.
		     If	it is negative,	no limit is specified.
		     The  return  value	 is a list object of the corresponding
		     keys.  This function does	never  fail.   It  returns  an
		     empty list	even if	no key corresponds.
		     Because  the  object  of the return value is created with
		     the function `tclistnew', it should be deleted  with  the
		     function  `tclistdel'  when it is no longer in use.  Note
		     that this function	may be very slow because every key  in
		     the database is scanned.

       The  function  `tchdbfwmkeys2' is used in order to get forward matching
       string keys in a	hash database object.

	      TCLIST *tchdbfwmkeys2(TCHDB *hdb,	const char *pstr, int max);
		     `hdb' specifies the hash database object.
		     `pstr' specifies the string of the	prefix.
		     `max' specifies the maximum number	of keys	to be fetched.
		     If	it is negative,	no limit is specified.
		     The return	value is a list	object	of  the	 corresponding
		     keys.   This  function  does  never  fail.	 It returns an
		     empty list	even if	no key corresponds.
		     Because the object	of the return value  is	 created  with
		     the  function  `tclistnew', it should be deleted with the
		     function `tclistdel' when it is no	longer in  use.	  Note
		     that  this	function may be	very slow because every	key in
		     the database is scanned.

       The function `tchdbaddint' is used in order to  add  an	integer	 to  a
       record in a hash	database object.

	      int  tchdbaddint(TCHDB  *hdb,  const  void  *kbuf, int ksiz, int
	      num);
		     `hdb' specifies the hash database object connected	 as  a
		     writer.
		     `kbuf' specifies the pointer to the region	of the key.
		     `ksiz' specifies the size of the region of	the key.
		     `num' specifies the additional value.
		     If	 successful,  the return value is the summation	value,
		     else, it is `INT_MIN'.
		     If	the corresponding record exists, the value is  treated
		     as	an integer and is added	to.  If	no record corresponds,
		     a new record of the additional value is stored.

       The  function  `tchdbdbadddouble' is used in order to add a real	number
       to a record in a	hash database object.

	      double tchdbadddouble(TCHDB *hdb,	const void  *kbuf,  int	 ksiz,
	      double num);
		     `hdb'  specifies  the hash	database object	connected as a
		     writer.
		     `kbuf' specifies the pointer to the region	of the key.
		     `ksiz' specifies the size of the region of	the key.
		     `num' specifies the additional value.
		     If	successful, the	return value is	the  summation	value,
		     else, it is Not-a-Number.
		     If	 the corresponding record exists, the value is treated
		     as	a real number and is added to.	If  no	record	corre-
		     sponds, a new record of the additional value is stored.

       The  function  `tchdbsync' is used in order to synchronize updated con-
       tents of	a hash database	object with the	file and the device.

	      bool tchdbsync(TCHDB *hdb);
		     `hdb' specifies the hash database object connected	 as  a
		     writer.
		     If	 successful,  the  return  value  is true, else, it is
		     false.
		     This function is useful when another process connects  to
		     the same database file.

       The function `tchdboptimize' is used in order to	optimize the file of a
       hash database object.

	      bool tchdboptimize(TCHDB *hdb, int64_t bnum, int8_t apow,	int8_t
	      fpow, uint8_t opts);
		     `hdb'  specifies  the hash	database object	connected as a
		     writer.
		     `bnum' specifies the number of elements of	the bucket ar-
		     ray.  If it is not	more than  0,  the  default  value  is
		     specified.	  The default value is two times of the	number
		     of	records.
		     `apow' specifies the size of record alignment by power of
		     2.	 If  it	 is  negative,	the  current  setting  is  not
		     changed.
		     `fpow'  specifies	the  maximum number of elements	of the
		     free block	pool by	power of 2.  If	it  is	negative,  the
		     current setting is	not changed.
		     `opts' specifies options by bitwise-or: `HDBTLARGE' spec-
		     ifies  that  the  size of the database can	be larger than
		     2GB by using 64-bit bucket	array, `HDBTDEFLATE' specifies
		     that each record is  compressed  with  Deflate  encoding,
		     `HDBTBZIP'	 specifies that	each record is compressed with
		     BZIP2 encoding, `HDBTTCBS'	specifies that each record  is
		     compressed	with TCBS encoding.  If	it is `UINT8_MAX', the
		     current setting is	not changed.
		     If	 successful,  the  return  value  is true, else, it is
		     false.
		     This function is useful to	reduce the size	of  the	 data-
		     base file with data fragmentation by successive updating.

       The  function `tchdbvanish' is used in order to remove all records of a
       hash database object.

	      bool tchdbvanish(TCHDB *hdb);
		     `hdb' specifies the hash database object connected	 as  a
		     writer.
		     If	 successful,  the  return  value  is true, else, it is
		     false.

       The function `tchdbcopy'	is used	in order to copy the database file  of
       a hash database object.

	      bool tchdbcopy(TCHDB *hdb, const char *path);
		     `hdb' specifies the hash database object.
		     `path' specifies the path of the destination file.	 If it
		     begins  with `@', the trailing substring is executed as a
		     command line.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.  False is returned if the executed command returns
		     non-zero code.
		     The  database file	is assured to be kept synchronized and
		     not modified while	the copying or executing operation  is
		     in	 progress.   So,  this	function is useful to create a
		     backup file of the	database file.

       The function `tchdbtranbegin' is	used in	order to begin the transaction
       of a hash database object.

	      bool tchdbtranbegin(TCHDB	*hdb);
		     `hdb' specifies the hash database object connected	 as  a
		     writer.
		     If	 successful,  the  return  value  is true, else, it is
		     false.
		     The database is locked by the thread while	 the  transac-
		     tion so that only one transaction can be activated	with a
		     database object at	the same time.	Thus, the serializable
		     isolation level is	assumed	if every database operation is
		     performed	in  the	 transaction.  All updated regions are
		     kept track	of by write ahead logging while	 the  transac-
		     tion.   If	the database is	closed during transaction, the
		     transaction is aborted implicitly.

       The function `tchdbtrancommit' is used in order to commit the  transac-
       tion of a hash database object.

	      bool tchdbtrancommit(TCHDB *hdb);
		     `hdb'  specifies  the hash	database object	connected as a
		     writer.
		     If	successful, the	return value  is  true,	 else,	it  is
		     false.
		     Update  in	 the transaction is fixed when it is committed
		     successfully.

       The function `tchdbtranabort' is	used in	order to abort the transaction
       of a hash database object.

	      bool tchdbtranabort(TCHDB	*hdb);
		     `hdb' specifies the hash database object connected	 as  a
		     writer.
		     If	 successful,  the  return  value  is true, else, it is
		     false.
		     Update  in	 the  transaction  is  discarded  when	it  is
		     aborted.	The state of the database is rollbacked	to be-
		     fore transaction.

       The function `tchdbpath'	is used	in order to get	the  file  path	 of  a
       hash database object.

	      const char *tchdbpath(TCHDB *hdb);
		     `hdb' specifies the hash database object.
		     The  return  value	 is  the  path of the database file or
		     `NULL' if the object does not  connect  to	 any  database
		     file.

       The  function `tchdbrnum' is used in order to get the number of records
       of a hash database object.

	      uint64_t tchdbrnum(TCHDB *hdb);
		     `hdb' specifies the hash database object.
		     The return	value is the number of records or 0 if the ob-
		     ject does not connect to any database file.

       The function `tchdbfsiz'	is used	in order to get	the size of the	 data-
       base file of a hash database object.

	      uint64_t tchdbfsiz(TCHDB *hdb);
		     `hdb' specifies the hash database object.
		     The return	value is the size of the database file or 0 if
		     the object	does not connect to any	database file.

SEE ALSO
       tchtest(1), tchmttest(1), tchmgr(1), tokyocabinet(3)

Man Page			  2012-08-18			      TCHDB(3)

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

home | help