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