Mercurial > hg > egg-tcls
changeset 27:6e381916b016
Some fixes in the query mechanisms of QuoteDB and URLLog.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 05 Sep 2011 19:51:46 +0300 |
parents | 3f999371de82 |
children | a59e312b1513 |
files | quotedb.tcl urllog.tcl |
diffstat | 2 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/quotedb.tcl Mon Sep 05 19:20:43 2011 +0300 +++ b/quotedb.tcl Mon Sep 05 19:51:46 2011 +0300 @@ -184,9 +184,11 @@ set maxdiff [expr $qdb_max_deltime * 60] if {[regexp "(\[0-9\]+)" $utext umatch unum]} { + set quoteID $unum set usql "SELECT id AS quoteID, utime AS utime, utext AS utext, user AS uuser, host AS uhost FROM $utable WHERE id=$unum AND user='[qdb_escape $uhand]'" } else { qdb_msg $upublic $unick $uchan "ID # annettava." + return 0 } quotedb eval $usql { @@ -245,6 +247,7 @@ qdb_log "$unick/$uhand/$uchan searched $utable: $utext" set ftokens [split $utext " "] + set fpatlist "" foreach ftoken $ftokens { set fprefix [string range $ftoken 0 0] set fpattern [string range $ftoken 1 end] @@ -259,9 +262,14 @@ lappend fpatlist "utext LIKE '%[qdb_escape $ftoken]%'" } } + if {[llength $fpatlist] > 0} { + set fquery "WHERE [join $fpatlist " AND "]" + } else { + set fquery "" + } set uresults 0 - set usql "SELECT id AS quoteID, utime AS utime, utext AS utext, user AS uuser, host AS uhost FROM $utable WHERE [join $fpatlist " AND "] ORDER BY utime DESC LIMIT $ulimit" + set usql "SELECT id AS quoteID, utime AS utime, utext AS utext, user AS uuser, host AS uhost FROM $utable $fquery ORDER BY utime DESC LIMIT $ulimit" quotedb eval $usql { incr uresults qdb_msg $upublic $unick $uchan "#${quoteID}: $utext ($uuser@[qdb_ctime $utime])"
--- a/urllog.tcl Mon Sep 05 19:20:43 2011 +0300 +++ b/urllog.tcl Mon Sep 05 19:51:46 2011 +0300 @@ -540,6 +540,7 @@ urllog_log "$unick/$uhand searched URL: $utext" set ftokens [split $utext " "] + set fpatlist "" foreach ftoken $ftokens { set fprefix [string range $ftoken 0 0] set fpattern [string range $ftoken 1 end] @@ -555,8 +556,13 @@ } } + if {[llength $fpatlist] > 0} { + set fquery "WHERE [join $fpatlist " AND "]" + } else { + set fquery "" + } set iresults 0 - set query "SELECT id AS urlID, utime AS utime, url AS uurl, user AS uuser, host AS uhost FROM urls WHERE [join $fpatlist " AND "] ORDER BY utime DESC LIMIT $ulimit" + set query "SELECT id AS urlID, utime AS utime, url AS uurl, user AS uuser, host AS uhost FROM urls $fquery ORDER BY utime DESC LIMIT $ulimit" urldb eval $query { incr iresults set shortURL $uurl