version 1.22, 2004/07/21 21:14:36
|
version 1.24, 2004/08/20 01:27:05
|
Line 619 Returns:
|
Line 619 Returns:
|
sub create_table { |
sub create_table { |
return undef if (!defined(&connect_to_db($dbh))); |
return undef if (!defined(&connect_to_db($dbh))); |
my ($table_des)=@_; |
my ($table_des)=@_; |
my $request = &build_table_creation_request($table_des); |
my ($request,$table_id) = &build_table_creation_request($table_des); |
# |
# |
# Execute the request to create the table |
# Execute the request to create the table |
############################################# |
############################################# |
Line 629 sub create_table {
|
Line 629 sub create_table {
|
$dbh->errstr(); |
$dbh->errstr(); |
return undef; |
return undef; |
} |
} |
# |
|
# Set up the internal bookkeeping |
|
############################################# |
|
my $table_id; |
|
if (exists($table_des->{'id'})) { |
|
$table_id = $table_des->{'id'}; |
|
} else { |
|
$table_id = &get_new_table_id(); |
|
} |
|
my $tablename = &translate_id($table_id); |
my $tablename = &translate_id($table_id); |
delete($Tables{$tablename}) if (exists($Tables{$tablename})); |
delete($Tables{$tablename}) if (exists($Tables{$tablename})); |
return undef if (! defined(&update_table_info($table_id))); |
return undef if (! defined(&update_table_info($table_id))); |
Line 770 sub build_table_creation_request {
|
Line 761 sub build_table_creation_request {
|
$request.="COMMENT = 'temporary' "; |
$request.="COMMENT = 'temporary' "; |
} |
} |
$request .= "TYPE=MYISAM"; |
$request .= "TYPE=MYISAM"; |
return $request; |
return $request,$table_id; |
} |
} |
|
|
############################### |
############################### |
Line 901 sub store_row {
|
Line 892 sub store_row {
|
return 1; |
return 1; |
} |
} |
|
|
|
|
|
############################### |
|
|
|
=pod |
|
|
|
=item &bulk_store_rows() |
|
|
|
Inputs: table id, [columns],[[row data1].[row data2],...] |
|
|
|
returns undef on error, 1 on success. |
|
|
|
=cut |
|
|
|
############################### |
|
sub bulk_store_rows { |
|
my ($table_id,$columns,$rows) = @_; |
|
# |
|
return undef if (! defined(&connect_to_db())); |
|
my $dbh = &get_dbh(); |
|
return undef if (! defined($dbh)); |
|
my $table_status = &check_table($table_id); |
|
return undef if (! defined($table_status)); |
|
if (! $table_status) { |
|
$errorstring = "table $table_id does not exist."; |
|
return undef; |
|
} |
|
# |
|
my $tablename = &translate_id($table_id); |
|
# |
|
my $request = 'INSERT IGNORE INTO '.$tablename.' '; |
|
if (defined($columns) && ref($columns) eq 'ARRAY') { |
|
$request .= join(',',@$columns).' '; |
|
} |
|
if (! defined($rows) || ref($rows) ne 'ARRAY') { |
|
$errorstring = "no input rows given."; |
|
return undef; |
|
} |
|
$request .= 'VALUES '; |
|
foreach my $row (@$rows) { |
|
# avoid doing row stuff here... |
|
$request .= '('.join(',',@$row).'),'; |
|
} |
|
$request =~ s/,$//; |
|
$dbh->do($request); |
|
if ($dbh->err) { |
|
$errorstring = 'Attempted '.$/.$request.$/.'Got error '.$dbh->errstr(); |
|
return undef; |
|
} |
|
return 1; |
|
} |
|
|
|
|
############################### |
############################### |
|
|
=pod |
=pod |