PL/Perlのはなし

  • 614 views
Uploaded on

Hokkaido.pm Casual#13で発表したスライドです。

Hokkaido.pm Casual#13で発表したスライドです。

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
614
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
2
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. PL/Perlのはなし(LT)@syachiHokkaido.pm Casual#13テーマ「モダンModule入門」2013-05-15
  • 2. Perlで書かれたモジュールをPostgreSQLから呼ぶ
  • 3. PL/Perlのはなし
  • 4. いわゆるストアドプロシージャPostgreSQL上でPerlが動くよ
  • 5. QuickStarttestdb=# CREATE LANGUAGE plperl;CREATE LANGUAGEtestdb=# CREATE OR REPLACE FUNCTION perl_set_int(int)testdb-# RETURNS SETOF INTEGER AS $$testdb$# foreach (0..$_[0]) {testdb$# return_next($_);testdb$# }testdb$# return undef;testdb$# $$ LANGUAGE plperl;
  • 6. 結果testdb=# select perl_set_int(5);perl_set_int--------------012345(6 rows)
  • 7. 超モダン:p
  • 8. plperl はuseが使えなかったりサーバ上のファイルが見れなかったり制限付きで安全
  • 9. そんな制限が不要の方はplperluを使います。CREATE LANGUAGE plperlu;
  • 10. 例Acme::MorningMusume のメンバー一覧を返してみる
  • 11. testdb=# CREATE TYPE musumetype AS (testdb-# name_ja text, age integer, hometown text, class integer);testdb=# CREATE OR REPLACE FUNCTION musumetachi()testdb-# RETURNS SETOF musumetype AS $$testdb$# use strict;testdb$# use utf8;testdb$# use Encode;testdb$# use Acme::MorningMusume;testdb$# foreach (Acme::MorningMusume->new->members()) {testdb$# return_next({testdb$# name_ja => Encode::decode_utf8($_->name_ja),testdb$# age => Encode::decode_utf8($_->age),testdb$# hometown => Encode::decode_utf8($_->hometown),testdb$# class => Encode::decode_utf8($_->class),testdb$# });testdb$# }testdb$# return undef;testdb$# $$ LANGUAGE plperlu;CREATE FUNCTION
  • 12. testdb=# SELECT * FROM musumetachi() ORDER BY age DESC; name_ja | age | hometown | class------------+-----+------------+------- 中澤裕子 | 39 | 京都府 | 1 石黒彩 | 35 | 北海道 | 1 保田圭 | 32 | 千葉県 | 2 飯田圭織 | 31 | 北海道 | 1 安倍なつみ | 31 | 北海道 | 1 市井紗耶香 | 29 | 千葉県 | 2 矢口真里 | 29 | 神奈川県 | 2 吉澤ひとみ | 28 | 埼玉県 | 4 福田明日香 | 28 | 東京都 | 1 石川梨華 | 27 | 神奈川県 | 4 藤本美貴 | 27 | 北海道 | 6 後藤真希 | 27 | 東京都 | 3 高橋愛 | 26 | 福井県 | 5 紺野あさ美 | 26 | 北海道 | 5 加護亜依 | 25 | 奈良県 | 4....略結果
  • 13. Have fun !!