[Exim-users] quote_pgsql и _ в localpart

2013-09-09 Пенетрантность Alexander Koval
Здравствуйте, Exim-users.

Переезжал на новый сервер с exim. На нем есть такой роутер

virtual_domains:
  driver = redirect
  allow_fail
  data = ${lookup pgsql{SELECT concat('/var/mail/',maildir) FROM public.mailbox 
\
WHERE local_part = '${quote_pgsql:$local_part}' \
AND domain = '${quote_pgsql:$domain}' \
AND active = 't'}}
  local_part_suffix = -*
  local_part_suffix_optional
  retry_use_local_part
  directory_transport = virtual_delivery
  reply_transport = address_reply
  pipe_transport = address_pipe

Выяснилось, что quote_pgsql эскейпит '%' и '_'.
Допустимо ли в условии WHERE поменять '=' на like или как-то по-другому надо 
строить запрос?
Вообще убрать quote_pgsql и делать проверки самим exim?

-- 
С наилучшими пожеланиями (73),
AID1-UANIC AID-EUNIC
Тел: +380 (44) 4619175, 4943810
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] quote_pgsql и _ в localpart

2013-09-09 Пенетрантность Alexander Titaev
Здравствуйте, Alexander.

Вы писали 9 сентября 2013 г., 19:56:33:

 Здравствуйте, Exim-users.

 Переезжал на новый сервер с exim. На нем есть такой роутер

 virtual_domains:
   driver = redirect
   allow_fail
   data = ${lookup pgsql{SELECT concat('/var/mail/',maildir) FROM 
 public.mailbox \
 WHERE local_part = '${quote_pgsql:$local_part}' \
 AND domain = '${quote_pgsql:$domain}' \
 AND active = 't'}}
   local_part_suffix = -*
   local_part_suffix_optional
   retry_use_local_part
   directory_transport = virtual_delivery
   reply_transport = address_reply
   pipe_transport = address_pipe

 Выяснилось, что quote_pgsql эскейпит '%' и '_'.
 Допустимо ли в условии WHERE поменять '=' на like или как-то по-другому надо 
 строить запрос?
 Вообще убрать quote_pgsql и делать проверки самим exim?

1) не знал что постгресс умеет такие дисковые операции...

2)  на  больших  объемах почты оно может в тупую жрать проц и дисковые
IO  поскольку  как  я понимаю каждый раз считается объем всех файлов в
maildir,  а  не  парсится  maildirsize.  А  с учетом того что файлов в
maildir может быть много результат будет плачевный.

3)  я  написал  скрипт на перле который парсит maildirsize и кэширует
данные избирательно в зависимости от текущего объема maildir. Работает
с exim через unix socket. Если надо могу выслать.


-- 
С уважением,
 Alexander  mailto:t...@irk.ru


___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] quote_pgsql и _ в localpart

2013-09-09 Пенетрантность Vasiliy P. Melnik
мое лично имхо, если у Вас сервер для одной конторы, то ставить квоты
на ящики как минимум странно - проще винты докупить.

9 сентября 2013 г., 13:56 пользователь Alexander Koval
ko...@machouse.ua написал:
 Здравствуйте, Exim-users.

 Переезжал на новый сервер с exim. На нем есть такой роутер

 virtual_domains:
   driver = redirect
   allow_fail
   data = ${lookup pgsql{SELECT concat('/var/mail/',maildir) FROM 
 public.mailbox \
 WHERE local_part = '${quote_pgsql:$local_part}' \
 AND domain = '${quote_pgsql:$domain}' \
 AND active = 't'}}
   local_part_suffix = -*
   local_part_suffix_optional
   retry_use_local_part
   directory_transport = virtual_delivery
   reply_transport = address_reply
   pipe_transport = address_pipe

 Выяснилось, что quote_pgsql эскейпит '%' и '_'.
 Допустимо ли в условии WHERE поменять '=' на like или как-то по-другому надо 
 строить запрос?
 Вообще убрать quote_pgsql и делать проверки самим exim?

 --
 С наилучшими пожеланиями (73),
 AID1-UANIC AID-EUNIC
 Тел: +380 (44) 4619175, 4943810
 ___
 Exim-users mailing list
 Exim-users@mailground.net
 http://mailground.net/mailman/listinfo/exim-users

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] quote_pgsql и _ в localpart

2013-09-09 Пенетрантность Andrey Oktyabrskiy

On 09.09.2013 14:56, Alexander Koval wrote:

Выяснилось, что quote_pgsql эскейпит '%' и '_'.
Допустимо ли в условии WHERE поменять '=' на like или как-то по-другому надо 
строить запрос?
Вообще убрать quote_pgsql и делать проверки самим exim?

Боюсь, без эксперимента никак.
В крайнем случае, можно поменять = не на like, а на ~* и использовать 
extended regexp.



___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] quote_pgsql и _ в localpart

2013-09-09 Пенетрантность Alexander Koval
Здравствуйте, Alexander

понедельник 9 сентября 2013 г., 14:17:30, вы писали:

 Здравствуйте, Alexander.

 Вы писали 9 сентября 2013 г., 19:56:33:

 Здравствуйте, Exim-users.

 Переезжал на новый сервер с exim. На нем есть такой роутер

 virtual_domains:
   driver = redirect
   allow_fail
   data = ${lookup pgsql{SELECT concat('/var/mail/',maildir) FROM 
 public.mailbox \
 WHERE local_part = '${quote_pgsql:$local_part}' \
 AND domain = '${quote_pgsql:$domain}' \
 AND active = 't'}}
   local_part_suffix = -*
   local_part_suffix_optional
   retry_use_local_part
   directory_transport = virtual_delivery
   reply_transport = address_reply
   pipe_transport = address_pipe

 Выяснилось, что quote_pgsql эскейпит '%' и '_'.
 Допустимо ли в условии WHERE поменять '=' на like или как-то по-другому надо 
 строить запрос?
 Вообще убрать quote_pgsql и делать проверки самим exim?

 1) не знал что постгресс умеет такие дисковые операции...

 2)  на  больших  объемах почты оно может в тупую жрать проц и дисковые
 IO  поскольку  как  я понимаю каждый раз считается объем всех файлов в
 maildir,  а  не  парсится  maildirsize.  А  с учетом того что файлов в
 maildir может быть много результат будет плачевный.

Может,  я  где-то наверно выразился. Там всего-лишь ищутся виртуальные
пользователи. Размеры maildir'ов не считаются.
Насколько я понял у меня вот такая ситуация 
http://www.exim.org/lurker/message/20120106.225316.cce8b71d.en.html
Т.к.  решение  не  обсуждалось, предположил, что участникам того треда
оно понятно, а я чего-то не знаю и не понимаю.
У  меня  сейчас  единственная  проблема  в  том, что есть несколько учетных
записей с _ в localpart и exim их не находит из-за quote_pgsql.

Вот! Похоже, моим решением будет http://bugs.exim.org/show_bug.cgi?id=932
Т.е. роутер будет выглядеть так

virtual_domains:
  driver = redirect
  allow_fail
  data = ${lookup pgsql{SELECT concat('/var/mail/',maildir) FROM public.mailbox 
\
WHERE local_part = E'${quote_pgsql:$local_part}' \
AND domain = E'${quote_pgsql:$domain}' \
AND active = 't'}}
  local_part_suffix = -*
  local_part_suffix_optional
  retry_use_local_part
  directory_transport = virtual_delivery
  reply_transport = address_reply
  pipe_transport = address_pipe



 3)  я  написал  скрипт на перле который парсит maildirsize и кэширует
 данные избирательно в зависимости от текущего объема maildir. Работает
 с exim через unix socket. Если надо могу выслать.





-- 
С наилучшими пожеланиями (73),
AID1-UANIC AID-EUNIC
Тел: +38 (044) 4619175, 4943810
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] quote_pgsql и _ в localpart

2013-09-09 Пенетрантность Vasiliy P. Melnik
мне стыдно :) решил что вопрос о квотах



 2)  на  больших  объемах почты оно может в тупую жрать проц и дисковые
 IO  поскольку  как  я понимаю каждый раз считается объем всех файлов в
 maildir,  а  не  парсится  maildirsize.  А  с учетом того что файлов в
 maildir может быть много результат будет плачевный.

 Может,  я  где-то наверно выразился. Там всего-лишь ищутся виртуальные
 пользователи. Размеры maildir'ов не считаются.
 Насколько я понял у меня вот такая ситуация 
 http://www.exim.org/lurker/message/20120106.225316.cce8b71d.en.html
 Т.к.  решение  не  обсуждалось, предположил, что участникам того треда
 оно понятно, а я чего-то не знаю и не понимаю.
 У  меня  сейчас  единственная  проблема  в  том, что есть несколько учетных
 записей с _ в localpart и exim их не находит из-за quote_pgsql.
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] quote_pgsql и _ в localpart

2013-09-09 Пенетрантность Alexander Titaev
Здравствуйте, Lystopad.

Вы писали 9 сентября 2013 г., 22:15:36:

  Hello, Alexander Titaev!

  virtual_domains:
driver = redirect
allow_fail
data = ${lookup pgsql{SELECT concat('/var/mail/',maildir) FROM 
  public.mailbox \
  WHERE local_part = '${quote_pgsql:$local_part}' \
  AND domain = '${quote_pgsql:$domain}' \
  AND active = 't'}}

 ...

 2)  на  больших  объемах почты оно может в тупую жрать проц и дисковые
 IO  поскольку  как  я понимаю каждый раз считается объем всех файлов в
 maildir,  а  не  парсится  maildirsize.  А  с учетом того что файлов в
 maildir может быть много результат будет плачевный.

 Судя по
 http://www.postgresql.org/docs/9.1/static/functions-string.html 
 concat('/var/mail/',maildir) -- соединяет аргументы, а не считает
 объем всех файлов. Или я недосмотрел?


да я видимо не один тормознул
;)

-- 
С уважением,
 Alexander  mailto:t...@irk.ru


___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users