Substance properties
Jump to navigation
Jump to search
Here is how we compute substance properties:
Purchasability
substance_best_purchasability -- Highest purchasability level for sub_id CREATE OR REPLACE FUNCTION substance_best_purchasability (sid INTEGER) RETURNS INTEGER IMMUTABLE AS $$ SELECT CASE WHEN (MAX(purchasability) IS NULL) THEN 0 ELSE MAX(purchasability) END AS purchasability FROM (SELECT (CASE WHEN (ci.sub_id_fk IS NULL) THEN 0 ELSE MAX(c.purchasable) END) AS purchasability FROM catalog AS c LEFT JOIN catalog_item AS ci ON ci.cat_id_fk=c.cat_id WHERE sub_id_fk=sid AND NOT ci.depleted GROUP BY ci.sub_id_fk ) AS _t $$ LANGUAGE SQL;
free
substance_is_free -- Is in any free catalog CREATE OR REPLACE FUNCTION substance_is_free (sid INTEGER) RETURNS INTEGER IMMUTABLE AS $$ SELECT MAX(free) AS free FROM (SELECT (CASE WHEN ci.sub_id_fk IS NULL THEN 0 ELSE max(cast(c.free as integer)) END) AS free FROM catalog AS c LEFT JOIN catalog_item AS ci ON ci.cat_id_fk=c.cat_id WHERE sub_id_fk=sid GROUP BY ci.sub_id_fk ) AS _t $$ LANGUAGE sql;
reactivity
substance_worst_reactivity -- Worst reactivity score for this substance CREATE OR REPLACE FUNCTION substance_worst_reactivity (sid INTEGER) RETURNS INTEGER IMMUTABLE AS $$ SELECT MAX(reactivity) AS reactivity FROM (SELECT (CASE WHEN sp.sub_id_fk IS NULL THEN 0 ELSE max(CASE WHEN p.pat_type_fk = 14 THEN 0 ELSE p.reactive END) END) AS reactivity FROM pattern AS p LEFT JOIN subpat AS sp ON sp.pattern_fk=p.pattern_id WHERE sub_id_fk=sid GROUP BY sp.sub_id_fk ) AS _t $$ LANGUAGE sql;
building blocks
work in progress
tranche 2-tuple
blah blah