]> git.donarmstrong.com Git - infobot.git/blobdiff - src/dbi.pl
ws
[infobot.git] / src / dbi.pl
index cd2bd353cede37fb915ceb1c4c6302ea17344b31..5071404081f3196205d72c7fd966e71c7bde0e3c 100644 (file)
@@ -39,8 +39,8 @@ sub sqlOpenDB {
     if ($dbh && !$dbh->err) {
        &status("Opened $type connection$hoststr");
     } else {
-       &ERROR("cannot connect$hoststr.");
-       &ERROR("since $type is not available, shutting down bot!");
+       &ERROR("Cannot connect$hoststr.");
+       &ERROR("Since $type is not available, shutting down bot!");
        &ERROR( $dbh->errstr ) if ($dbh);
        &closePID();
        &closeSHM($shm);
@@ -92,7 +92,7 @@ sub sqlSelectMany {
        my $where = &hashref2where($where_href);
        $query .= " WHERE $where" if ($where);
     }
-    $query .= " $other"                if $other;
+    $query .= " $other"        if ($other);
 
     if (!($sth = $dbh->prepare($query))) {
        &ERROR("sqlSelectMany: prepare: $DBI::errstr");
@@ -100,10 +100,8 @@ sub sqlSelectMany {
     }
 
     &SQLDebug($query);
-    if (!$sth->execute) {
-       &ERROR("sqlSelectMany: execute: '$query'");
-       return;
-    }
+
+    return if (!$sth->execute);
 
     return $sth;
 }
@@ -166,11 +164,11 @@ sub sqlSelectColHash {
     my %retval;
 
     if (defined $type and $type == 2) {
-       &DEBUG("dbgetcol: type 2!");
+       &DEBUG("sqlSelectColHash: type 2!");
        while (my @row = $sth->fetchrow_array) {
            $retval{$row[0]} = join(':', $row[1..$#row]);
        }
-       &DEBUG("dbgetcol: count => ".scalar(keys %retval) );
+       &DEBUG("sqlSelectColHash: count => ".scalar(keys %retval) );
 
     } elsif (defined $type and $type == 1) {
        while (my @row = $sth->fetchrow_array) {
@@ -239,7 +237,8 @@ sub sqlSet {
     my $result = &sqlSelect($table, $k, $where_href);
 #    &DEBUG("result is not defined :(") if (!defined $result);
 
-    if (1 or defined $result) {
+    # this was hardwired to use sqlUpdate. sqlite does not do inserts on sqlUpdate.
+    if (defined $result) {
        &sqlUpdate($table, $data_href, $where_href);
     } else {
        # hack.
@@ -263,7 +262,7 @@ sub sqlUpdate {
 
     if (!defined $data_href or ref($data_href) ne "HASH") {
        &WARN("sqlSet: data_href == NULL.");
-       return;
+       return 0;
     }
 
     my $where  = &hashref2where($where_href) if ($where_href);
@@ -499,7 +498,6 @@ sub hashref2array {
 sub countKeys {
     my ($table, $col) = @_;
     $col ||= "*";
-    &DEBUG("&countKeys($table, $col);");
 
     return (&sqlRawReturn("SELECT count($col) FROM $table"))[0];
 }
@@ -539,7 +537,7 @@ sub deleteTable {
 
 #####
 # Usage: &searchTable($table, $select, $key, $str);
-#  Note: searchTable does dbQuote.
+#  Note: searchTable does sqlQuote.
 sub searchTable {
     my($table, $select, $key, $str) = @_;
     my $origStr = $str;
@@ -547,7 +545,7 @@ sub searchTable {
 
     # allow two types of wildcards.
     if ($str =~ /^\^(.*)\$$/) {
-       &DEBUG("searchTable: should use dbGet(), heh.");
+       &FIXME("searchTable: can't do \"$str\"");
        $str = $1;
     } else {
        $str .= "%"     if ($str =~ s/^\^//);
@@ -560,7 +558,7 @@ sub searchTable {
     $str =~ s/\*/%/g;
     # end of string fix.
 
-    my $query = "SELECT $select FROM $table WHERE $key LIKE ". 
+    my $query = "SELECT $select FROM $table WHERE $key LIKE ".
                &sqlQuote($str);
     my $sth = $dbh->prepare($query);
 
@@ -579,7 +577,7 @@ sub searchTable {
     return @results;
 }
 
-sub dbCreateTable {
+sub sqlCreateTable {
     my($table) = @_;
     my(@path)  = ($bot_data_dir, ".","..","../..");
     my $found  = 0;
@@ -587,11 +585,8 @@ sub dbCreateTable {
 
     foreach (@path) {
        my $file = "$_/setup/$table.sql";
-       &DEBUG("dbCT: table => '$table', file => '$file'");
        next unless ( -f $file );
 
-       &DEBUG("dbCT: found!!!");
-
        open(IN, $file);
        while (<IN>) {
            chop;
@@ -605,7 +600,7 @@ sub dbCreateTable {
     if (!$found) {
        return 0;
     } else {
-       &sqlRaw("dbcreateTable($table)", $data);
+       &sqlRaw("sqlCreateTable($table)", $data);
        return 1;
     }
 }
@@ -646,10 +641,16 @@ sub checkTables {
        }
     }
 
-    foreach ( qw(factoids freshmeat rootwarn seen stats botmail) ) {
-       next if (exists $db{$_});
+    foreach ( qw(factoids factoidsmisc rootwarn seen stats botmail) ) {
+       if (exists $db{$_}) {
+           $cache{has_table}{$_} = 1;
+           next;
+       }
+
        &status("checkTables: creating new table $_...");
 
+       $cache{create_table}{$_} = 1;
+
        &sqlCreateTable($_);
     }
 }