0

Running a query in Pgadmin returns 374 results but running the same function with Flask & Psycopg2 returns only 40.

Pgadmin query:

SELECT
ts_headline('english', content."F-Content", to_tsquery('cat | dog | vet'), 'StartSel= <mark> , StopSel= </mark> , MaxWords=150, MinWords=50, ShortWord=3, MaxFragments=5, FragmentDelimiter=(...)<br/>') AS "F-Content",
data.*
FROM data
LEFT JOIN content ON content."F-UUID" = data."F-UUID"
WHERE content.tsv @@ to_tsquery('cat | dog | vet')
ORDER BY ts_rank_cd(content.tsv, to_tsquery('cat | dog | vet'), 32) DESC

Results:

Successfully run. Total query runtime: 24 secs 394 msec.
374 rows affected.

Flask/psycopg2 code:

conn = psycopg2.connect(host="xxx.xxx.xx.xx", port="5432", dbname="xxxx",user="xxx", password="xxx")
db = conn.cursor()
sql = (f"SELECT "
      f"ts_headline('english', content.\"F-Content\", to_tsquery('cat | dog | vet'), 'StartSel= <mark> , StopSel= </mark> , MaxWords=150, MinWords=50, ShortWord=3, MaxFragments=5, FragmentDelimiter=(...)<br/>') AS \"F-Content\", "
      f"data.* "
      f"FROM data "
      f"LEFT JOIN content ON content.\"F-UUID\" = data.\"F-UUID\" "
      f"WHERE content.tsv @@ to_tsquery('cat | dog | vet') "
      f"ORDER BY ts_rank_cd(content.tsv, to_tsquery('cat | dog | vet'), 32) DESC ")
 db.execute(sql)
 headers = [desc[0] for desc in db.description]
 results = db.fetchall()
 count = str(db.rowcount)
 db.close()
 return results, headers, count

Results (as per count = str(db.rowcount) and visibly on the webpage):

Total results: 40

Why is this happening? What am I doing wrong?

drk_hale
  • 1
  • 4

0 Answers0