[#950] ruby 1.1b0 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

33 messages 1997/12/05

[#998] ruby 1.1b1 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

48 messages 1997/12/09
[#1011] Re: ruby 1.1b1 released — Kazuhisa Yanagawa <katze@...> 1997/12/10

in message-id: <199712090833.RAA31727@picachu.netlab.co.jp>

[#1013] Re: ruby 1.1b1 released — matz@... (Yukihiro Matsumoto) 1997/12/10

まつもと ゆきひろです

[#1028] Regexp#operators (Re: ruby 1.1b1 released) — Shin-ichiro HARA <sinara@...> 1997/12/10

原です。

[#1030] Re: Regexp#operators (Re: ruby 1.1b1 released) — matz@... (Yukihiro Matsumoto) 1997/12/10

まつもと ゆきひろです

[#1033] Re: Regexp#operators (Re: ruby 1.1b1 released) — Shin-ichiro HARA <sinara@...> 1997/12/10

原です。

[#1049] Re: Regexp#operators (Re: ruby 1.1b1 released) — Shin-ichiro HARA <sinara@...> 1997/12/11

原です。

[#1064] Re: Regexp#operators (Re: ruby 1.1b1 released) — matz@... (Yukihiro Matsumoto) 1997/12/12

まつもと ゆきひろです

[#1097] Re: Regexp#operators (Re: ruby 1.1b1 released) — Shin-ichiro HARA <sinara@...> 1997/12/15

原です。

[#1002] Object#bind — shugo@... (Shugo Maeda)

前田です。

39 messages 1997/12/09
[#1008] Re: Object#bind — matz@... (Yukihiro Matsumoto) 1997/12/10

まつもと ゆきひろです

[#1023] Re: Object#bind — shugo@... (Shugo Maeda) 1997/12/10

前田です。

[#1026] Re: Object#bind — matz@... (Yukihiro Matsumoto) 1997/12/10

まつもと ゆきひろです

[#1044] Re: Object#bind — keiju@... (石塚圭樹 ) 1997/12/11

けいじゅ@日本ラショナルソフトウェアです.

[#1051] Re: Object#bind — shugo@... (Shugo Maeda) 1997/12/11

前田です。

[#1063] Re: Object#bind — matz@... (Yukihiro Matsumoto) 1997/12/12

まつもと ゆきひろです

[#1079] Re: Object#bind — keiju@... (石塚圭樹 ) 1997/12/14

けいじゅ@日本ラショナルソフトウェアです.

[#1084] Re: Object#bind — matz@... (Yukihiro Matsumoto) 1997/12/15

まつもと ゆきひろです

[#1087] Re: Object#bind — keiju@... (石塚圭樹 ) 1997/12/15

けいじゅ@日本ラショナルソフトウェアです.

[#1088] Re: Object#bind — matz@... (Yukihiro Matsumoto) 1997/12/15

まつもと ゆきひろです

[#1085] [Req] object refference — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

12 messages 1997/12/15

[ruby-dev:1060] Re: Postgres module

From: matz@... (Yukihiro Matsumoto)
Date: 1997-12-12 02:42:12 UTC
List: ruby-dev #1060
まつもと ゆきひろです

ruby-devに引っ越しました.

In message "[ruby-list:5646] Re: Postgres module"
    on 97/12/12, Eiji-usagi-MATSUmoto <ematsu@pfu.co.jp> writes:

|うさぎです

|んで,
|
| ・ 配列を返すメソッドがあるのだから,それを呼び出して
| ・ array.cを参考にして,eachを実装し,
| ・ dbm.cにあるように,Enumerableをincludeした.
|
|だけなんですが,こんなのでいいんでしょうか?

まあ,それでも良いと思うんですが,せっかくですから無駄な配列
を作らずに

  static VALUE
  pgresult_each(obj)
      VALUE obj;
  {
      PGresult *result;
      int nt, nf, i, j;

      result = get_pgresult(obj);
      nt = PQntuples(result);
      nf = PQnfields(result);
      for (i=0; i<nt; i++) {
          VALUE row = ary_new2(nf);
          for (j=0; j<nf; j++) {
              ary_push(row, str_new2(PQgetvalue(result, i, j)));
          }
          rb_yield(row);
      };

      return Qnil;
  }

なんてのがよろしいのでは? 効率はそんなに変わらないみたいで
すけどね.

そうそう以下のようなarefも欲しいなあ

  static VALUE
  pgresult_aref(argc, argv, obj)
      int argc;
      VALUE *argv;
      VALUE obj;
  {
      PGresult *result;
      VALUE a1, a2, val;
      int i, j, nf;

      switch (rb_scan_args(argc, argv, "11", &a1, &a2)) {
        case 1:
          val = ary_new();
          i = NUM2INT(a1);
          nf = PQnfields(result);
          VALUE row = ary_new2(nf);
          for (j=0; j<nf; j++) {
              ary_push(row, str_new2(PQgetvalue(result, i, j)));
          }
          return val;

        case 2:
          i = NUM2INT(a1);
          j = NUM2INT(a2);
          return str_new2(PQgetvalue(result, i, j));

        default:
          return Qnil;		/* not reached */
      }
  }

  void
  Init_postgres()
  {
      ...
      rb_define_method(cPGresult, "[]", pgresult_aref, -1);
      ...
  }

# すいません.まったく試してません(コンパイルすら).

                                まつもと ゆきひろ /:|)

In This Thread

Prev Next