Rework stalwart queries

This commit is contained in:
traxys 2023-10-09 16:36:35 +02:00
parent be8a56fb21
commit e1d539e893

View file

@ -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
``` ```