In-Line SQL Statements

Original V16 Statement

var filterOriginal = rows.Select(x => $"(container='{x["container"]}' AND docid={x["docid"]})");

var tableOriginal = await Sql.SelectTableAsync($@"SELECT hybrid 
FROM dms_link 
WHERE hybrid LIKE 'pers^%' 
AND ({filterOriginal.StrCat(" or ")})");

V17 Conversion

PostgreSQL allows comparision of touples/pairs

// using IN
var filterComposed = rows.StrCat(",", x => $"('{x["container"].ToStringNN()}', {x["docid"].ToInt()})");

var tableComposed = await Sql.SelectTableAsync($@"SELECT hybrid 
FROM dms_link 
WHERE hybrid LIKE 'pers^%' 
AND (container, docid) IN ({filterComposed})");

Simplifying to a single entry

Wrong!

Last updated