Страница 1 из 1

PL/pgSQL и в PL/Perl

Добавлено: 2009-12-18 6:51:26
ProFTP
в процедурах PL/pgSQL и в PL/Perl (там свои классы можно вызывать)


кто использовал? или видел, как оно?
pyPgSQL is a package of two modules that provide a Python DB-API 2.0 compliant interface to PostgreSQL databases. The first module, libpq, exports the PostgreSQL C API to Python. This module is written in C and can be compiled into Python or can be dynamically loaded on demand. The second module, PgSQL, provides the DB-API 2.0 compliant interface and support for various PostgreSQL data types, such as INT8, NUMERIC, MONEY, BOOL, ARRAYS, etc. This module is written in Python.

Re: PL/pgSQL и в PL/Perl

Добавлено: 2009-12-18 9:25:37
hizel
PL/pgSQL это не pgSQL и не пистон, начинай читать наконец с официальных сайтов

Re: PL/pgSQL и в PL/Perl

Добавлено: 2009-12-18 9:59:10
ProFTP
что ты хотел этим сказать?

я написал рядом PL/Perl

не знаю я что это по твоему, но там можно использовать свои классы

Код: Выделить всё

CREATE FUNCTION ca (bigint, character varying, character varying, character varying, bigint) RETURNS character varying
    AS $_X$
use strict;
use POSIX;
use Sys::Hostname;
use MIME::Lite;
use MIME::QuotedPrint;
my ($user,$from,$to,$subj,$tmpl)=@_;
my $key=join'',map $$_[rand@$_],([0..9,'a'..'f'])x32;
my $url="http://www..ru/с/$key/";
my $date = POSIX::strftime("%Y-%m-%d %H:%M:%S", localtime);
my $hostname = hostname;
my $parts=spi_exec_query(<<SQL);
    select  template, subject, type
      from  email_templates
     where  id = $tmpl
SQL
my $_tmpl = $parts->{rows}[0]{template};
my $_subj = $parts->{rows}[0]{subject};
for($_tmpl,$_subj){
    s/__FROM__/$from/g;
    s/__TO__/$to/g;
    s/__KEY__/$key/g;
    s/__SUBJ__/$subj/g;
    s/__SUBJ~(\d+)__/substr($subj,0,$1)/ge;
    s/__DATE__/$date/g;
    s/__HOSTNAME__/$hostname/g;
    s/__URL__/$url/g;
}
utf8::encode $_ for $_tmpl,$_subj;
for($to){my$x;
  /</ ? s/<.*?\@/<mail.robot\@/
      : s/^.*?\@/mail.robot\@/;
  s/^(.*?)</utf8::encode $x=$1;'=?utf-8?Q?'.encode_qp($x,'').'?= <'/e;
}
my $mail = MIME::Lite->new(
    From     => $to,
    To       => $from,
    Subject  => '=?utf-8?Q?'.encode_qp($_subj,'').'?=',
    Encoding => 'base64',
    Type     => 'text/plain; charset=utf-8',
    Data     => $_tmpl,
);
$mail->send;
return $key;
$_X$
    LANGUAGE plperlu;
там написано что оно динамически через Си API загружает perl

pgSQL - это тоже не PostgreSQL, это прогармма на Си :pardon:

Re: PL/pgSQL и в PL/Perl

Добавлено: 2009-12-18 10:01:14
hizel
я хотел сказать что у тебя внизу цитата от пистоновского древнего как гавно мамонта биндинга к постгрессу :pardon:

Re: PL/pgSQL и в PL/Perl

Добавлено: 2009-12-18 10:05:45
ProFTP
офциальная документация большая, я английский не шарю сильно, еще не успел все прочитать и PostgreSQL'ом я особо сильно не интересовался еще...

где-то было написано что Python в процедурах не поддерживается, только perl...

Re: PL/pgSQL и в PL/Perl

Добавлено: 2009-12-18 10:16:45
hizel
тада снеси цытату йоп :]
pyPgSQL is a package of two modules that provide a Python DB-API 2.0 compliant interface to PostgreSQL databases.