Rework stalwart queries
This commit is contained in:
parent
be8a56fb21
commit
e1d539e893
1 changed files with 39 additions and 26 deletions
63
queries.md
63
queries.md
|
|
@ -5,9 +5,18 @@
|
|||
100 GB quota
|
||||
|
||||
```sql
|
||||
SELECT name, 'individual' as type, password as secret, '' as description, 107374182400 as quota
|
||||
FROM accounts
|
||||
WHERE secret != NULL AND name = ?
|
||||
SELECT
|
||||
mail as name,
|
||||
'individual' as type,
|
||||
password as secret,
|
||||
'' as description,
|
||||
107374182400 as quota
|
||||
FROM emails
|
||||
JOIN accounts ON emails.id = accounts.id
|
||||
WHERE
|
||||
type = 'primary'
|
||||
AND mail = ?
|
||||
AND password IS NOT NULL
|
||||
```
|
||||
|
||||
## members
|
||||
|
|
@ -19,47 +28,51 @@ SELECT NULL as member_of WHERE 1=0
|
|||
## recipients
|
||||
|
||||
```sql
|
||||
SELECT name
|
||||
FROM emails JOIN accounts on emails.id = accounts.id
|
||||
WHERE mail = ?
|
||||
SELECT dest as name FROM alias WHERE alias = ?
|
||||
UNION
|
||||
SELECT mail as name
|
||||
FROM emails
|
||||
WHERE id = (SELECT id FROM emails WHERE type = 'list' AND mail = ?)
|
||||
AND type = 'primary'
|
||||
UNION
|
||||
SELECT mail as name FROM emails WHERE mail = ?
|
||||
```
|
||||
|
||||
## emails
|
||||
|
||||
```sql
|
||||
SELECT mail as address
|
||||
FROM (
|
||||
SELECT name || '@familleboyer.net' as mail, 0 as type FROM accounts WHERE name = ?
|
||||
UNION
|
||||
SELECT mail, (alias)::int + 1 as type
|
||||
FROM emails JOIN accounts ON accounts.id = emails.id
|
||||
WHERE name = ?
|
||||
) as mails
|
||||
ORDER BY type
|
||||
SELECT mais as address
|
||||
FROM emails
|
||||
WHERE
|
||||
(id = (SELECT id FROM emails WHERE mail = ?) AND type = 'alias')
|
||||
OR mail = ?
|
||||
ORDER BY type, mail
|
||||
```
|
||||
|
||||
## verify
|
||||
|
||||
```sql
|
||||
SELECT mail as address
|
||||
FROM (
|
||||
SELECT name || '@familleboyer.net' as mail FROM accounts
|
||||
UNION
|
||||
SELECT mail
|
||||
FROM emails JOIN accounts ON accounts.id = emails.id
|
||||
WHERE NOT alias
|
||||
) as mails
|
||||
WHERE mail LIKE '%' || ? || '%' ORDER BY mail LIMIT 5
|
||||
FROM emails
|
||||
WHERE
|
||||
mail LIKE '%' || ? || '%'
|
||||
AND type = 'primary'
|
||||
ORDER BY address
|
||||
LIMIT 5
|
||||
```
|
||||
|
||||
## expand
|
||||
|
||||
```sql
|
||||
SELECT NULL as address WHERE 1=0
|
||||
SELECT recipient as address
|
||||
FROM list_recipients
|
||||
WHERE list = ?
|
||||
ORDER BY address
|
||||
LIMIT 50
|
||||
```
|
||||
|
||||
## domains
|
||||
|
||||
```sql
|
||||
SELECT 1 WHERE ? = 'familleboyer.net'
|
||||
SELECT 1 FROM emails WHERE mail LIKE '%@' || ? LIMIT 1
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue