[前][次][番号順一覧][スレッド一覧]

mysql:661

From: 民斗 <民斗 <tommy@xxxxxxxxxx>>
Date: Sat, 30 Jan 1999 00:46:12 +0900
Subject: [mysql 00661] Re: mysql_reload

民斗です。

[Subject: [mysql 00657] Re: mysql_reload]
[Date: Thu, 28 Jan 1999 19:55:28 +0900  From:takeshi@xxxxxxxxxx]

> takeshi> 3.22.14 のマニュアルで C API の説明が違うことに気づきました。
> 
> しつれいしました。違うのではなくて、
> "refresh が無い" の間違いです。
> mysql_reload は mysql_refresh(a,REFRESH_GRANT) で再定義されてました。
> 
> takeshi> で、民斗さんの mysql-ruby-2.1.1 に対するパッチを添付します
> 
> こちらが正解のパッチです。

このパッチではちょっとまずいです。

refresh() の引数 VALUE a は int 型の値ではなくて、Ruby のオブジェクトを
指定する必要があるので…。

ということで、2.1.1 に対するパッチを添付します。単純に mysql_refresh()
を追加したのと REFRESH_* の定数を追加しただけです。

で、毅さんのパッチを見て思ったんですが、やっぱり MYSQL_VERSION_ID とか
でクライアント(というかC API)のバージョンを判断して色んなバージョンで 
make できるようにしておいた方がいいのかな…と…。

今は自分のことしか考えてないんで (^^; 最新の MySQL バージョン用になって
しまっていますが、いつごろのバージョンから対応した方がいいでしょう?

3.20.xx にも対応してた方がいいですかね? やっぱり…。
--
民斗 <tommy@xxxxxxxxxx>


--- mysql.c.orig	Sat Jan 30 00:29:56 1999
+++ mysql.c	Sat Jan 30 00:18:16 1999
@@ -257,4 +257,13 @@
 }
 
+/*	refresh(r)	*/
+static VALUE refresh(VALUE obj, VALUE r)
+{
+    MYSQL* m = GetHandler(obj);
+    if (mysql_refresh(m, NUM2INT(r)) != 0)
+	mysql_raise(m);
+    return TRUE;
+}
+
 /*	reload()	*/
 static VALUE reload(VALUE obj)
@@ -624,4 +633,5 @@
     rb_define_method(cMysql, "ping", ping, 0);
     rb_define_method(cMysql, "query", query, 1);
+    rb_define_method(cMysql, "refresh", refresh, 1);
     rb_define_method(cMysql, "reload", reload, 0);
     rb_define_method(cMysql, "select_db", select_db, 1);
@@ -639,4 +649,9 @@
     rb_define_const(cMysql, "CLIENT_COMPRESS", INT2NUM(CLIENT_COMPRESS));
     rb_define_const(cMysql, "CLIENT_ODBC", INT2NUM(CLIENT_ODBC));
+    rb_define_const(cMysql, "REFRESH_GRANT", INT2NUM(REFRESH_GRANT));
+    rb_define_const(cMysql, "REFRESH_LOG", INT2NUM(REFRESH_LOG));
+    rb_define_const(cMysql, "REFRESH_TABLES", INT2NUM(REFRESH_TABLES));
+    rb_define_const(cMysql, "REFRESH_HOSTS", INT2NUM(REFRESH_HOSTS));
+    rb_define_const(cMysql, "REFRESH_STATUS", INT2NUM(REFRESH_STATUS));
 
     /* MysqlRes object method */

[前][次][番号順一覧][スレッド一覧]

->     661 1999-01-30 00:46 [民斗 <tommy@xxxxxxxx] Re: mysql_reload                        
       665 1999-01-31 12:35 ┣[<takeshi@xxxxxxxxxx>]                                       
       765 1999-03-08 16:06 ┗[Yasuaki Tanaka <yasu] データの変換                          
       771 1999-03-09 13:27  ┗[kazumasa Nakamura <k]