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

FreeBSD Manual Pages

  
 
  

home | help
Sympa::DatabaseDriver(3Sympa)	 sympa 6.2.16	 Sympa::DatabaseDriver(3Sympa)

NAME
       Sympa::DatabaseDriver - Base class of database drivers for Sympa

SYNOPSIS
	 package Sympa::DatabaseDriver::FOO;
	 use base qw(Sympa::DatabaseDriver);

DESCRIPTION
       Sympa::DatabaseDriver is	the base class of driver classes for Sympa
       Database	Manager	(SDM).

   Instance methods subclasses should implement
       required_modules	( )
	   Overridable.	 Returns an arrayref including package name(s) this
	   driver requires.  By	default, no packages are required.

       required_parameters ( )
	   Overridable.	 Returns an arrayref including names of	required (not
	   optional) parameters.  By default, returns "['db_host', 'db_name',
	   'db_user']".

       optional_modules	( )
	   Overridable.	 Returns an arrayref including all name(s) of optional
	   packages.  By default, there	are no optional	packages.

	   This	method was introduced by Sympa 6.2.4.

       optional_parameters ( )
	   Overridable.	 Returns an arrayref including all names of optional
	   parameters.	By default, returns 'db_passwd', 'db_port',
	   'db_options'	and so on.

       build_connect_string ( )
	   Mandatory for SQL driver.  Builds the string	to be used by the DBI
	   to connect to the database.

	   Parameter:

	   None.

	   Returns:

	   String representing data source name	(DSN).

       connect ( )
	   Overridable.	 Connects to database calling "_connect"() and sets
	   database handle.

	   Parameter:

	   None.

	   Returns:

	   True	value or, if connection	failed,	false value.

       _connect	( )
	   Overridable.	 Connects to database and returns native database
	   handle.

	   The default implementation is for DBI database handle.

       get_substring_clause ( {	source_field =>	$source_field, separator =>
       $separator, substring_length => $substring_length } )
	   This	method was deprecated by Sympa 6.2.4.

       get_limit_clause	( )
	   This	method was deprecated.

       get_formatted_date ( { mode => $mode, target => $target } )
	   Mandatory for SQL driver.  Returns a	character string corresponding
	   to the expression to	use in a query involving a date.

	   Parameters:

	   $mode
	       authorized values:

	       'write'
		   The sub returns the expression to use in 'INSERT' or
		   'UPDATE' queries.

	       'read'
		   The sub returns the expression to use in 'SELECT' queries.

	   $target
	       The name	of the field or	the value to be	used in	the query.

	   Returns:

	   The formatted date or "undef" if the	date format mode is unknown.

       is_autoinc ( { table => $table, field =>	$field } )
	   Required to probe database structure.  Checks whether a field is an
	   auto-increment field	or not.

	   Parameters:

	   $field
	       The name	of the field to	test

	   $table
	       The name	of the table to	add

	   Returns:

	   True	if the field is	an auto-increment field, false otherwise

       set_autoinc ( { table =>	$table,	field => $field	} )
	   Required to update database structure.  Defines the field as	an
	   auto-increment field.

	   Parameters:

	   $field
	       The name	of the field to	set.

	   $table
	       The name	of the table to	add.

	   Returns:

	   1 if	the auto-increment could be set, "undef" otherwise.

       get_tables ( )
	   Required to probe database structure.  Returns the list of the
	   tables in the database.

	   Parameters:

	   None.

	   Returns:

	   A ref to an array containing	the list of the	table names in the
	   database, "undef" if	something went wrong.

       add_table ( { table => $table } )
	   Required to update database structure.  Adds	a table	to the
	   database.

	   Parameter:

	   $table
	       The name	of the table to	add

	   Returns:

	   A character string report of	the operation done or "undef" if
	   something went wrong.

       get_fields ( { table => $table }	)
	   Required to probe database structure.  Returns a ref	to an hash
	   containing the description of the fields in a table from the
	   database.

	   Parameters:

	   $table
	       The name	of the table whose fields are requested.

	   Returns:

	   A hash in which the keys are	the field names	and the	values are the
	   field type.

	   Returns "undef" if something	went wrong.

       update_field ( {	table => $table, field => $field, type => $type, ... }
       )
	   Required to update database structure.  Changes the type of a field
	   in a	table from the database.

	   Parameters:

	   $field
	       The name	of the field to	update.

	   $table
	       The name	of the table whose fields will be updated.

	   $type
	       The type	of the field to	add.

	   $notnull
	       Specifies that the field	must not be null

	   Returns:

	   A character string report of	the operation done or "undef" if
	   something went wrong.

       add_field ( { table => $table, field => $field, type => $type, ... } )
	   Required to update database structure.  Adds	a field	in a table
	   from	the database.

	   Parameters:

	   $field
	       The name	of the field to	add.

	   $table
	       The name	of the table where the field will be added.

	   $type
	       The type	of the field to	add.

	   $notnull
	       Specifies that the field	must not be null.

	   $autoinc
	       Specifies that the field	must be	auto-incremental.

	   $primary
	       Specifies that the field	is a key.

	   Returns:

	   A character string report of	the operation done or "undef" if
	   something went wrong.

       delete_field ( {	table => $table, field => $field } )
	   Required to update database structure.  Deletes a field from	a
	   table in the	database.

	   Parameters:

	   $field
	       The name	of the field to	delete

	   $table
	       The name	of the table where the field will be deleted.

	   Returns:

	   A character string report of	the operation done or "undef" if
	   something went wrong.

       get_primary_key ( { table => $table } )
	   Required to probe database structure.  Returns the list fields
	   being part of a table's primary key.

	   $table
	       The name	of the table for which the primary keys	are requested.

	   Returns:

	   A ref to a hash in which each key is	the name of a primary key or
	   "undef" if something	went wrong.

       unset_primary_key ( { table => $table } )
	   Required to update database structure.  Drops the primary key of a
	   table.

	   Parameter:

	   $table
	       The name	of the table for which the primary keys	must be
	       dropped.

	   Returns:

	   A character string report of	the operation done or "undef" if
	   something went wrong.

       set_primary_key ( { table => $table, fields => $fields }	)
	   Required to update database structure.  Sets	the primary key	of a
	   table.

	   Parameters:

	   $table
	       The name	of the table for which the primary keys	must be
	       defined.

	   $fields
	       A ref to	an array containing the	names of the fields used in
	       the key.

	   Returns:

	   A character string report of	the operation done or "undef" if
	   something went wrong.

       get_indexes ( { table =>	$table } )
	   Required to probe database structure.  Returns a ref	to a hash in
	   which each key is the name of an index.

	   Parameter:

	   $table
	       The name	of the table for which the indexes are requested.

	   Returns:

	   A ref to a hash in which each key is	the name of an index.  These
	   key point to	a second level hash in which each key is the name of
	   the field indexed.  Returns "undef" if something went wrong.

       unset_index ( { table =>	$table,	index => $index	} )
	   Required to update database structure.  Drops an index of a table.

	   Parameters:

	   $table
	       The name	of the table for which the index must be dropped.

	   $index
	       The name	of the index to	be dropped.

	   Returns:

	   A character string report of	the operation done or "undef" if
	   something went wrong.

       set_index ( { table => $table, index_name => $index_name, fields	=>
       $fields } )
	   Required to update database structure.  Sets	an index in a table.

	   Parameters:

	   $table
	       The name	of the table for which the index must be defined.

	   $fields
	       A ref to	an array containing the	names of the fields used in
	       the index.

	   $index_name
	       The name	of the index to	be defined.

	   Returns:

	   A character string report of	the operation done or "undef" if
	   something went wrong.

       translate_type (	$generic_type )
	   Required to probe and update	database structure.  Get native	field
	   type	corresponds to generic type.  The generic type is based	on
	   MySQL: See "full_db_struct" in Sympa::DatabaseDescription.

       Subclasses of Sympa::DatabaseDriver class also can override methods
       provided	by Sympa::Database class:

       do_operation ( $operation, $parameters, ...)
	   Overridable,	only for LDAP driver.

       do_query	( $query, $parameters, ... )
	   Overridable,	only for SQL driver.

       do_prepared_query ( $query, $parameters,	... )
	   Overridable,	only for SQL driver.

       AS_DOUBLE ( $value )
	   Overridable.	 Helper	functions to return the	DOUBLE binding type
	   and value used by "do_prepared_query"().  Overridden	by inherited
	   classes.

	   Parameter:

	   $value

	   Parameter value

	   Returns:

	   One of:

	   o   An array	"( { sql_type => SQL_type }, value )".

	   o   Single value (i.e. an array with	single item), if special
	       treatment won't be needed.

	   o   Empty array "()"	if arguments were not given.

       AS_BLOB ( $value	)
	   Overridable.	 Helper	functions to return the	BLOB (binary large
	   object) binding type	and value used by "do_prepared_query"().
	   Overridden by inherited classes.

	   See "AS_DOUBLE" for more details.

   Utility method
       __dbh ( )
	   Instance method, protected.	Returns	native database	handle which
	   _connect() returned.	 This may be used at inside of each driver
	   class.

SEE ALSO
       Sympa::Database,	Sympa::DatabaseManager.

HISTORY
       Sympa Database Manager (SDM) appeared on	Sympa 6.2.

6.2.16				  2016-01-06	 Sympa::DatabaseDriver(3Sympa)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Sympa::DatabaseDriver&sektion=3sympa&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help