#46, #50: Further improvements on list generation

This commit is contained in:
Simon Brooke 2018-06-11 10:10:23 +01:00
parent 88b693acc5
commit 98695e41dc
6 changed files with 165 additions and 95 deletions

View file

@ -1,6 +1,6 @@
-- File queries.sql
-- autogenerated by adl.to-hugsql-queries at
-- 2018-06-05T12:33:53.043Z
-- 2018-06-11T00:58:48.917Z
-- See [Application Description Language](https://github.com/simon-brooke/adl).
@ -36,8 +36,7 @@ INSERT INTO canvassers (username,
phone,
email,
authority_id,
authorised,
roles)
authorised)
VALUES (:username,
:fullname,
:elector_id,
@ -45,8 +44,7 @@ VALUES (:username,
:phone,
:email,
:authority_id,
:authorised,
:roles)
:authorised)
returning id
-- :name create-district! :! :n
@ -440,7 +438,7 @@ ORDER BY addresses.address,
-- :name list-addresses-by-district :? :*
-- :doc lists all existing address records related to a given district
SELECT *
SELECT *
FROM addresses
WHERE addresses.district_id = :id
ORDER BY addresses.address,
@ -465,7 +463,7 @@ ORDER BY canvassers.username,
-- :name list-canvassers-by-address :? :*
-- :doc lists all existing canvasser records related to a given address
SELECT *
SELECT *
FROM canvassers
WHERE canvassers.address_id = :id
ORDER BY canvassers.username,
@ -475,7 +473,7 @@ ORDER BY canvassers.username,
-- :name list-canvassers-by-authority :? :*
-- :doc lists all existing canvasser records related to a given authority
SELECT *
SELECT *
FROM canvassers
WHERE canvassers.authority_id = :id
ORDER BY canvassers.username,
@ -485,7 +483,7 @@ ORDER BY canvassers.username,
-- :name list-canvassers-by-elector :? :*
-- :doc lists all existing canvasser records related to a given elector
SELECT *
SELECT *
FROM canvassers
WHERE canvassers.elector_id = :id
ORDER BY canvassers.username,
@ -494,10 +492,11 @@ ORDER BY canvassers.username,
canvassers.id
-- :name list-canvassers-by-role :? :*
-- :doc lists all existing canvasser records related to a given role
SELECT *
-- :doc links all existing canvasser records related to a given role
SELECT *
FROM canvassers
WHERE canvassers.roles = :id
WHERE canvassers.roles = link_canvassers_roles.canvasser_id
AND link_canvassers_roles.role_id = :id
ORDER BY canvassers.username,
canvassers.fullname,
canvassers.email,
@ -519,7 +518,7 @@ SELECT * FROM dwellings
-- :name list-dwellings-by-address :? :*
-- :doc lists all existing dwelling records related to a given address
SELECT *
SELECT *
FROM dwellings
WHERE dwellings.address_id = :id
@ -535,7 +534,7 @@ ORDER BY electors.name,
-- :name list-electors-by-dwelling :? :*
-- :doc lists all existing elector records related to a given dwelling
SELECT *
SELECT *
FROM electors
WHERE electors.dwelling_id = :id
ORDER BY electors.name,
@ -545,7 +544,7 @@ ORDER BY electors.name,
-- :name list-electors-by-gender :? :*
-- :doc lists all existing elector records related to a given gender
SELECT *
SELECT *
FROM electors
WHERE electors.gender = :id
ORDER BY electors.name,
@ -561,13 +560,13 @@ SELECT * FROM followupactions
-- :name list-followupactions-by-canvasser :? :*
-- :doc lists all existing followupaction records related to a given canvasser
SELECT *
SELECT *
FROM followupactions
WHERE followupactions.actor = :id
-- :name list-followupactions-by-followuprequest :? :*
-- :doc lists all existing followupaction records related to a given followuprequest
SELECT *
SELECT *
FROM followupactions
WHERE followupactions.request_id = :id
@ -585,25 +584,25 @@ SELECT * FROM followuprequests
-- :name list-followuprequests-by-elector :? :*
-- :doc lists all existing followuprequest records related to a given elector
SELECT *
SELECT *
FROM followuprequests
WHERE followuprequests.elector_id = :id
-- :name list-followuprequests-by-followupmethod :? :*
-- :doc lists all existing followuprequest records related to a given followupmethod
SELECT *
SELECT *
FROM followuprequests
WHERE followuprequests.method_id = :id
-- :name list-followuprequests-by-issue :? :*
-- :doc lists all existing followuprequest records related to a given issue
SELECT *
SELECT *
FROM followuprequests
WHERE followuprequests.issue_id = :id
-- :name list-followuprequests-by-visit :? :*
-- :doc lists all existing followuprequest records related to a given visit
SELECT *
SELECT *
FROM followuprequests
WHERE followuprequests.visit_id = :id
@ -621,19 +620,19 @@ SELECT * FROM intentions
-- :name list-intentions-by-elector :? :*
-- :doc lists all existing intention records related to a given elector
SELECT *
SELECT *
FROM intentions
WHERE intentions.elector_id = :id
-- :name list-intentions-by-option :? :*
-- :doc lists all existing intention records related to a given option
SELECT *
SELECT *
FROM intentions
WHERE intentions.option_id = :id
-- :name list-intentions-by-visit :? :*
-- :doc lists all existing intention records related to a given visit
SELECT *
SELECT *
FROM intentions
WHERE intentions.visit_id = :id
@ -645,19 +644,19 @@ SELECT * FROM issueexpertise
-- :name list-issueexpertise-by-canvasser :? :*
-- :doc lists all existing issueexpertise records related to a given canvasser
SELECT *
SELECT *
FROM issueexpertise
WHERE issueexpertise.canvasser_id = :id
-- :name list-issueexpertise-by-followupmethod :? :*
-- :doc lists all existing issueexpertise records related to a given followupmethod
SELECT *
SELECT *
FROM issueexpertise
WHERE issueexpertise.method_id = :id
-- :name list-issueexpertise-by-issue :? :*
-- :doc lists all existing issueexpertise records related to a given issue
SELECT *
SELECT *
FROM issueexpertise
WHERE issueexpertise.issue_id = :id
@ -681,13 +680,13 @@ SELECT * FROM rolememberships
-- :name list-rolememberships-by-canvasser :? :*
-- :doc lists all existing rolemembership records related to a given canvasser
SELECT *
SELECT *
FROM rolememberships
WHERE rolememberships.canvasser_id = :id
-- :name list-rolememberships-by-role :? :*
-- :doc lists all existing rolemembership records related to a given role
SELECT *
SELECT *
FROM rolememberships
WHERE rolememberships.role_id = :id
@ -699,6 +698,15 @@ ORDER BY roles.name,
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
-- :name list-roles-by-canvasser :? :*
-- :doc links all existing role records related to a given canvasser
SELECT *
FROM roles
WHERE roles.members = link_roles_canvassers.role_id
AND link_roles_canvassers.canvasser_id = :id
ORDER BY roles.name,
roles.id
-- :name list-teammemberships :? :*
-- :doc lists all existing teammembership records
SELECT * FROM teammemberships
@ -707,13 +715,13 @@ SELECT * FROM teammemberships
-- :name list-teammemberships-by-canvasser :? :*
-- :doc lists all existing teammembership records related to a given canvasser
SELECT *
SELECT *
FROM teammemberships
WHERE teammemberships.canvasser_id = :id
-- :name list-teammemberships-by-team :? :*
-- :doc lists all existing teammembership records related to a given team
SELECT *
SELECT *
FROM teammemberships
WHERE teammemberships.team_id = :id
@ -725,13 +733,13 @@ SELECT * FROM teamorganiserships
-- :name list-teamorganiserships-by-canvasser :? :*
-- :doc lists all existing teamorganisership records related to a given canvasser
SELECT *
SELECT *
FROM teamorganiserships
WHERE teamorganiserships.canvasser_id = :id
-- :name list-teamorganiserships-by-team :? :*
-- :doc lists all existing teamorganisership records related to a given team
SELECT *
SELECT *
FROM teamorganiserships
WHERE teamorganiserships.team_id = :id
@ -743,9 +751,18 @@ ORDER BY teams.name,
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
-- :name list-teams-by-canvasser :? :*
-- :doc links all existing team records related to a given canvasser
SELECT *
FROM teams
WHERE teams.members = link_teams_canvassers.team_id
AND link_teams_canvassers.canvasser_id = :id
ORDER BY teams.name,
teams.id
-- :name list-teams-by-district :? :*
-- :doc lists all existing team records related to a given district
SELECT *
SELECT *
FROM teams
WHERE teams.district_id = :id
ORDER BY teams.name,
@ -759,20 +776,20 @@ SELECT * FROM visits
-- :name list-visits-by-address :? :*
-- :doc lists all existing visit records related to a given address
SELECT *
SELECT *
FROM visits
WHERE visits.address_id = :id
-- :name list-visits-by-canvasser :? :*
-- :doc lists all existing visit records related to a given canvasser
SELECT *
SELECT *
FROM visits
WHERE visits.canvasser_id = :id
-- :name search-strings-address :? :1
-- :doc selects existing address records having any string field matching `:pattern` by substring match
SELECT * FROM addresses
WHERE
WHERE
address LIKE '%:pattern%'
OR phone LIKE '%:pattern%'
ORDER BY addresses.address,
@ -784,7 +801,7 @@ ORDER BY addresses.address,
-- :name search-strings-authority :? :1
-- :doc selects existing authority records having any string field matching `:pattern` by substring match
SELECT * FROM authorities
WHERE
WHERE
id LIKE '%:pattern%'
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
@ -792,7 +809,7 @@ id LIKE '%:pattern%'
-- :name search-strings-canvasser :? :1
-- :doc selects existing canvasser records having any string field matching `:pattern` by substring match
SELECT * FROM canvassers
WHERE
WHERE
username LIKE '%:pattern%'
OR fullname LIKE '%:pattern%'
OR phone LIKE '%:pattern%'
@ -807,7 +824,7 @@ ORDER BY canvassers.username,
-- :name search-strings-district :? :1
-- :doc selects existing district records having any string field matching `:pattern` by substring match
SELECT * FROM districts
WHERE
WHERE
name LIKE '%:pattern%'
ORDER BY districts.name,
districts.id
@ -817,7 +834,7 @@ ORDER BY districts.name,
-- :name search-strings-dwelling :? :1
-- :doc selects existing dwelling records having any string field matching `:pattern` by substring match
SELECT * FROM dwellings
WHERE
WHERE
sub-address LIKE '%:pattern%'
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
@ -825,7 +842,7 @@ sub-address LIKE '%:pattern%'
-- :name search-strings-elector :? :1
-- :doc selects existing elector records having any string field matching `:pattern` by substring match
SELECT * FROM electors
WHERE
WHERE
name LIKE '%:pattern%'
OR phone LIKE '%:pattern%'
OR email LIKE '%:pattern%'
@ -839,7 +856,7 @@ ORDER BY electors.name,
-- :name search-strings-followupaction :? :1
-- :doc selects existing followupaction records having any string field matching `:pattern` by substring match
SELECT * FROM followupactions
WHERE
WHERE
notes LIKE '%:pattern%'
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
@ -847,7 +864,7 @@ notes LIKE '%:pattern%'
-- :name search-strings-followupmethod :? :1
-- :doc selects existing followupmethod records having any string field matching `:pattern` by substring match
SELECT * FROM followupmethods
WHERE
WHERE
id LIKE '%:pattern%'
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
@ -855,14 +872,14 @@ id LIKE '%:pattern%'
-- :name search-strings-followuprequest :? :1
-- :doc selects existing followuprequest records having any string field matching `:pattern` by substring match
SELECT * FROM followuprequests
WHERE
WHERE
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
-- :name search-strings-gender :? :1
-- :doc selects existing gender records having any string field matching `:pattern` by substring match
SELECT * FROM genders
WHERE
WHERE
id LIKE '%:pattern%'
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
@ -870,14 +887,14 @@ id LIKE '%:pattern%'
-- :name search-strings-intention :? :1
-- :doc selects existing intention records having any string field matching `:pattern` by substring match
SELECT * FROM intentions
WHERE
WHERE
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
-- :name search-strings-issue :? :1
-- :doc selects existing issue records having any string field matching `:pattern` by substring match
SELECT * FROM issues
WHERE
WHERE
url LIKE '%:pattern%'
OR id LIKE '%:pattern%'
--~ (if (:offset params) "OFFSET :offset ")
@ -886,14 +903,14 @@ url LIKE '%:pattern%'
-- :name search-strings-issueexpertise :? :1
-- :doc selects existing issueexpertise records having any string field matching `:pattern` by substring match
SELECT * FROM issueexpertise
WHERE
WHERE
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
-- :name search-strings-option :? :1
-- :doc selects existing option records having any string field matching `:pattern` by substring match
SELECT * FROM options
WHERE
WHERE
id LIKE '%:pattern%'
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
@ -901,7 +918,7 @@ id LIKE '%:pattern%'
-- :name search-strings-role :? :1
-- :doc selects existing role records having any string field matching `:pattern` by substring match
SELECT * FROM roles
WHERE
WHERE
name LIKE '%:pattern%'
ORDER BY roles.name,
roles.id
@ -911,14 +928,14 @@ ORDER BY roles.name,
-- :name search-strings-rolemembership :? :1
-- :doc selects existing rolemembership records having any string field matching `:pattern` by substring match
SELECT * FROM rolememberships
WHERE
WHERE
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
-- :name search-strings-team :? :1
-- :doc selects existing team records having any string field matching `:pattern` by substring match
SELECT * FROM teams
WHERE
WHERE
name LIKE '%:pattern%'
ORDER BY teams.name,
teams.id
@ -928,21 +945,21 @@ ORDER BY teams.name,
-- :name search-strings-teammembership :? :1
-- :doc selects existing teammembership records having any string field matching `:pattern` by substring match
SELECT * FROM teammemberships
WHERE
WHERE
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
-- :name search-strings-teamorganisership :? :1
-- :doc selects existing teamorganisership records having any string field matching `:pattern` by substring match
SELECT * FROM teamorganiserships
WHERE
WHERE
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
-- :name search-strings-visit :? :1
-- :doc selects existing visit records having any string field matching `:pattern` by substring match
SELECT * FROM visits
WHERE
WHERE
--~ (if (:offset params) "OFFSET :offset ")
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
@ -967,8 +984,7 @@ SET username = :username,
phone = :phone,
email = :email,
authority_id = :authority_id,
authorised = :authorised,
roles = :roles
authorised = :authorised
WHERE canvassers.id = :id
-- :name update-district! :! :n
@ -1079,4 +1095,4 @@ UPDATE visits
SET address_id = :address_id,
canvasser_id = :canvasser_id,
date = :date
WHERE visits.id = :id
WHERE visits.id = :id