diff --git a/api_domains.go b/api_domains.go index 1aa23c1..a350428 100644 --- a/api_domains.go +++ b/api_domains.go @@ -92,7 +92,7 @@ func buildTLDSearchQuery(sq SearchQuery) (string, []interface{}) { UNION -- Exact domain match SELECT tld::text as tld, host || '.' || tld as source_host - FROM domains WHERE LOWER(host) = $2 AND LOWER(tld) = $3 + FROM domains WHERE LOWER(host) = $2 AND tld::text = $3 UNION -- Feeds matching URL SELECT tld, source_host FROM feeds WHERE tld IS NOT NULL AND LOWER(url) LIKE $1 @@ -202,7 +202,7 @@ func buildDomainSearchQuery(sq SearchQuery, tldFilter string, argNum int) (strin LOWER(f.url) LIKE $%d OR LOWER(f.title) LIKE $%d OR LOWER(f.description) LIKE $%d OR - (LOWER(d.host) = $%d AND LOWER(d.tld) = $%d) + (LOWER(d.host) = $%d AND d.tld::text = $%d) )`, argNum, argNum+1, argNum+1, argNum+1, argNum+1, argNum+2, argNum+3) args = []interface{}{tldFilter, pattern, strings.ToLower(sq.DomainHost), strings.ToLower(sq.DomainTLD)} argNum += 4 @@ -223,7 +223,7 @@ func buildDomainSearchQuery(sq SearchQuery, tldFilter string, argNum int) (strin LOWER(f.url) LIKE $%d OR LOWER(f.title) LIKE $%d OR LOWER(f.description) LIKE $%d OR - (LOWER(d.host) = $%d AND LOWER(d.tld) = $%d) + (LOWER(d.host) = $%d AND d.tld::text = $%d) )`, argNum, argNum, argNum, argNum, argNum+1, argNum+2) args = []interface{}{pattern, strings.ToLower(sq.DomainHost), strings.ToLower(sq.DomainTLD)} argNum += 3 @@ -442,7 +442,7 @@ func (c *Crawler) handleAPIDomains(w http.ResponseWriter, r *http.Request) { LOWER(f.url) LIKE $%d OR LOWER(f.title) LIKE $%d OR LOWER(f.description) LIKE $%d OR - (LOWER(d.host) = $%d AND LOWER(d.tld) = $%d) + (LOWER(d.host) = $%d AND d.tld::text = $%d) )`, argNum, argNum, argNum, argNum, argNum+1, argNum+2) args = append(args, searchPattern, strings.ToLower(searchQuery.DomainHost), strings.ToLower(searchQuery.DomainTLD)) argNum += 3 @@ -1634,7 +1634,7 @@ func (c *Crawler) handleAPISearchStats(w http.ResponseWriter, r *http.Request) { if sq.DomainHost != "" && sq.DomainTLD != "" { domainWhere = `( LOWER(host) LIKE $1 OR - (LOWER(host) = $2 AND LOWER(tld) = $3) OR + (LOWER(host) = $2 AND tld::text = $3) OR EXISTS (SELECT 1 FROM feeds f WHERE f.source_host = (host || '.' || tld) AND ( LOWER(f.url) LIKE $1 OR LOWER(f.title) LIKE $1 OR LOWER(f.description) LIKE $1 ))