# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+use warnings;
use strict;
use warnings;
use DBI;
use Data::Dumper;
-
+use Time::HiRes;
use Maasha::Common;
use vars qw( @ISA @EXPORT );
}
+sub delete_database
+{
+ my ( $database,
+ $user,
+ $password,
+ ) = @_;
+
+ die qq(ERROR: Protected database: "$database!\n" ) if $database =~/^(mysql|information_schema)$/i;
+ system( "mysqladmin drop $database --force --user=$user --password=$password > /dev/null 2>&1" ) == 0 or
+ die qq(ERROR: Could not drop database "$database"!\n);
+
+ return;
+}
+
+
sub database_exists
{
# Martin A. Hansen, May 2008.
my ( @databases );
- @databases = &list_databases( $user, $pass );
+ @databases = list_databases( $user, $pass );
if ( grep /^$database$/i, @databases ) {
return 1;
my ( @databases );
- @databases = &Maasha::Common::run_and_return( "mysqlshow", "--user=$user --password=$pass" );
+ @databases = Maasha::Common::run_and_return( "mysqlshow", "--user=$user --password=$pass" );
splice @databases, 0, 3;
{
$errstr = $DBI::errstr;
- &disconnect( $dbh );
+ disconnect( $dbh );
die qq(ERROR: $errstr, "SQL PREPARE ERROR" );
}
{
$errstr = $DBI::errstr;
- &disconnect( $dbh );
+ disconnect( $dbh );
die qq(ERROR: $errstr, "SQL EXECUTE ERROR" );
}
{
$errstr = $DBI::errstr;
- &disconnect( $dbh );
+ disconnect( $dbh );
die qq(ERROR: $errstr, "SQL PREPARE ERROR" );
}
{
$errstr = $DBI::errstr;
- &disconnect( $dbh );
+ disconnect( $dbh );
die qq(ERROR: $errstr, "SQL EXECUTE ERROR" );
}
{
$errstr = $DBI::errstr;
- &disconnect( $dbh );
+ disconnect( $dbh );
die qq(ERROR: $errstr, "DATABASE RETRIEVE ERROR" );
}
# Returns a list.
my ( $sth, $table, $errstr, @status );
-
if ( not $sth = $dbh->prepare( $sql ) )
{
$errstr = $DBI::errstr;
- &disconnect( $dbh );
+ disconnect( $dbh );
die qq(ERROR: $errstr, "SQL PREPARE ERROR" );
}
{
$errstr = $DBI::errstr;
- &disconnect( $dbh );
+ disconnect( $dbh );
die qq(ERROR: $errstr, "SQL EXECUTE ERROR" );
}
-
+
if ( $table = $sth->fetchall_arrayref( $out ) )
{
return wantarray ? @{ $table } : $table;
{
$errstr = $DBI::errstr;
- &disconnect( $dbh );
+ disconnect( $dbh );
die qq(ERROR: $errstr, "DATABASE RETRIEVE ERROR" );
}
}
$table,
) = @_;
- &request( $dbh, "drop table $table" );
+ request( $dbh, "drop table $table" );
}
my ( @list );
- @list = &query_array( $dbh, "show tables" );
+ @list = query_array( $dbh, "show tables" );
if ( @list ) {
@list = map { $_->[0] } @list;
$name,
) = @_;
- if ( grep /^$name$/, &list_tables( $dbh ) ) {
+ if ( grep /^$name$/, list_tables( $dbh ) ) {
return 1;
} else {
return;
my ( $dbh );
- &Maasha::Common::error( qq(Database "$database" does not exist) ) if not &database_exists( $database, $user, $pass );
+ Maasha::Common::error( qq(Database "$database" does not exist) ) if not database_exists( $database, $user, $pass );
$dbh = DBI->connect(
"dbi:mysql:$database",
if ( $dbh ) {
return $dbh;
} else {
- &Maasha::Common::error( qq($DBI::errstr) );
+ Maasha::Common::error( qq($DBI::errstr) );
}
}
$count_sql = qq( SELECT $column FROM $table WHERE $column="$old_val"; );
- $count = scalar &query_array( $dbh, $count_sql );
+ $count = scalar query_array( $dbh, $count_sql );
if ( $count > 1 )
{
}
elsif ( $count == 0 )
{
- &disconnect( $dbh );
+ disconnect( $dbh );
die qq(ERROR: entry not found "$count_sql"\n);
}
else
{
$sql = qq( UPDATE $table SET $column="$new_val" WHERE $column="$old_val"; );
- &request( $dbh, $sql );
+ request( $dbh, $sql );
}
return;
$sql = qq(DELETE FROM $table WHERE $field = "$pattern";);
- &request( $dbh, $sql );
+ request( $dbh, $sql );
return;
}
$sql = "INSERT INTO $table VALUES ( " . join( ", ", @fields ) . " );";
- &request( $dbh, $sql );
+ request( $dbh, $sql );
return;
}
$sql = "ALTER TABLE $table ADD COLUMN ( $column $type );";
}
- &request( $dbh, $sql );
+ request( $dbh, $sql );
return;
}
$sql = "ALTER TABLE $table DROP COLUMN $column;";
- &request( $dbh, $sql );
+ request( $dbh, $sql );
return;
}
-sub load_sql_file
+sub bulk_load_file
{
# Martin A. Hansen, January 2004.
$sql = qq( LOAD DATA LOCAL INFILE "$path" INTO TABLE $table FIELDS TERMINATED BY '$delimiter' );
- &SQL::request( $dbh, $sql );
+ request( $dbh, $sql );
}