mysql 2.7.1-mswin32 → 2.7.3-mswin32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README CHANGED
@@ -8,7 +8,12 @@ A win32 native build of the MySQL API module for Ruby.
8
8
 
9
9
  = Dependencies
10
10
 
11
- none
11
+ For this to work, you must have libmysql.dll in your PATH environmental variable. If you have MySQL installed locally,
12
+ just make sure that <mysql_install_dir>\bin is in your path. If you don't have MySQL installed locally, you can
13
+ install one or more of the MySQL tools, find the libmysql.dll included in their bin directory, and copy it to
14
+ the %SystemRoot%\System32 folder.
15
+
16
+ I can't include the dll here due to licensing conflicts.
12
17
 
13
18
  = Installation
14
19
 
data/Rakefile CHANGED
@@ -5,30 +5,24 @@ require 'fileutils'
5
5
  #require 'date'
6
6
  include FileUtils
7
7
 
8
- CLEAN.include ["ext/*.{log,c,so,obj,pdb,lib,def,exp,manifest}", "ext/Makefile", "*.gem"]
8
+ CLEAN.include ["ext/*.{log,c,so,obj,pdb,lib,def,exp,manifest,orig}", "ext/Makefile", "*.gem"]
9
9
 
10
10
  name="mysql"
11
- version="2.7.1"
11
+ version="2.7.3"
12
12
 
13
13
  desc "Do everything, baby!"
14
14
  task :default => [:package]
15
15
 
16
- #task :package => [:clobber,:compile,:test,:makegem]
17
16
  task :package => [:clean,:compile,:makegem]
18
17
 
19
18
  desc "Compiles all extensions"
20
19
  task :compile do
20
+ cp 'ext/mysql.c.in', 'ext/mysql.c.in.orig'
21
+ sh %{ patch -p0 ext/mysql.c.in < ext/mysql.c.in.patch }
21
22
  cd "ext" do
22
23
  sh %{ ruby extconf.rb --with-mysql-include=C:/Progra~1/MySQL/MySQLS~1.0/include --with-mysql-lib=C:/Progra~1/MySQL/MySQLS~1.0/lib/opt }
23
24
  sh %{ nmake }
24
- end
25
- end
26
-
27
- desc "runs the given tests"
28
- task :test do
29
- cd "ext" do
30
- # TODO: improve test setup so that tests pass with authentication
31
- ruby "test.rb", %{#{ENV["TESTOPTS"]}}
25
+ mv 'mysql.c.in.orig', 'mysql.c.in', :force => true
32
26
  end
33
27
  end
34
28
 
@@ -43,7 +37,7 @@ task :makegem do
43
37
  s.summary = "A win32-native build of the MySQL API module for Ruby."
44
38
  s.description = s.summary
45
39
  s.rubyforge_project = s.name
46
- s.files += %w(docs ext/mysql.so ext/extconf.rb ext/extconf.rb.orig ext/mysql.c.in ext/test.rb README Rakefile)
40
+ s.files += %w(docs ext/mysql.so ext/extconf.rb ext/mysql.c.in ext/mysql.c.in.patch ext/test.rb README Rakefile)
47
41
  s.rdoc_options << '--exclude' << 'ext' << '--main' << 'README'
48
42
  s.extra_rdoc_files = ["README", "docs/README.html"]
49
43
  s.has_rdoc = true
@@ -1,5 +1,5 @@
1
1
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
- <!-- $Id: README.html,v 1.18 2006/06/04 14:39:53 tommy Exp $ -->
2
+ <!-- $Id: README.html,v 1.20 2006-12-20 05:31:52 tommy Exp $ -->
3
3
  <html>
4
4
  <head>
5
5
  <meta http-equiv="content-style-type" content="text/css">
@@ -22,8 +22,8 @@
22
22
 
23
23
  <h2>Requirement</h2>
24
24
  <ul>
25
- <li>MySQL 4.1.15/5.0.16
26
- <li>Ruby 1.8.4
25
+ <li>MySQL 5.0.27
26
+ <li>Ruby 1.8.5
27
27
  </ul>
28
28
  <p>
29
29
  The module may work for other versions, but that has not been verified.
@@ -103,6 +103,9 @@
103
103
  <pre class="code">
104
104
  % env LD_RUN_PATH=<i>libmysqlclient.so directory</i> make
105
105
  </pre>
106
+ <p>
107
+ test.rb is tested on Linux only.
108
+ </p>
106
109
 
107
110
  <h2>Usage</h2>
108
111
  <p>
@@ -697,7 +700,7 @@ st.close
697
700
  <tr><td>FLOAT, DOUBLE<td>Float
698
701
  <tr><td>DECIMAL<td>String
699
702
  <tr><td>DATE, DATETIME, TIMESTAMP, TIME<td>Mysql::Time
700
- <tr><td>CHAR, VARCHAR, BINARY, VARBINARY, TINYBLOB, TINYTEXT, TINYBLOB, TINYTEXT, MEDIUMBLOB, MEDIUMTEXT, LONGBLOB, LONGTEXT, ENUM, SET<td>String
703
+ <tr><td>CHAR, VARCHAR, BINARY, VARBINARY, TINYBLOB, TINYTEXT, TINYBLOB, TINYTEXT, MEDIUMBLOB, MEDIUMTEXT, LONGBLOB, LONGTEXT, ENUM, SET, BIT<td>String
701
704
  <tr><td>NULL<td>NilClass
702
705
  </table>
703
706
 
@@ -811,6 +814,25 @@ st.close
811
814
 
812
815
  <h2>History</h2>
813
816
  <dl>
817
+ <dt>2006-12-20
818
+ <dd>
819
+ version 2.7.3
820
+ <ul>
821
+ <li>BUG: Mysql#query with block is stopped when last query failed.
822
+ </ul>
823
+
824
+ <dt>2006-10-28
825
+ <dd>
826
+ version 2.7.2
827
+ <ul>
828
+ <li>BUG: Mysql::Stmt#result_metadata don't return nil. (Thanks to Hidetoshi)
829
+ <li>BUG: Mysql#close check mysql_errno.
830
+ <li>BUG: multistatement Mysql#query with block ignore error.
831
+ <li>extconf.rb for Visual C++. (Thanks to Shugo Maeda)
832
+ <li>support MySQL BIT type.
833
+ <li>add Mysql::Field::TYPE_BIT, TYPE_NEWDECIMAL.
834
+ </ul>
835
+
814
836
  <dt>2006-06-04
815
837
  <dd>
816
838
  version 2.7.1
@@ -1011,7 +1033,7 @@ st.close
1011
1033
  <address><a href="mailto:tommy@tmtm.org">TOMITA Masahiro</a></address>
1012
1034
  <!-- Created: Sun Aug 29 11:52:09 JST 2004 -->
1013
1035
  <!-- hhmts start -->
1014
- Last modified: Sun Jun 4 23:39:34 JST 2006
1036
+ Last modified: Wed Dec 20 14:30:14 JST 2006
1015
1037
  <!-- hhmts end -->
1016
1038
  </body>
1017
1039
  </html>
@@ -1,18 +1,73 @@
1
- require 'mkmf'
2
-
3
- dir_config('mysql')
4
- have_header('mysql.h')
5
- if not have_library('libmysql', 'mysql_query', 'mysql.h') then
6
- puts "Could not locate the 'mysql_query' function."
7
- exit 1
8
- end
9
-
10
- have_func('mysql_ssl_set', 'mysql.h')
11
-
12
- newf = File::open('mysql.c', 'w')
13
- IO::foreach('mysql.c.in') do |l|
14
- newf.puts l
15
- end
16
-
17
- create_makefile('mysql')
18
-
1
+ require 'mkmf'
2
+
3
+ if /mswin32/ =~ RUBY_PLATFORM
4
+ inc, lib = dir_config('mysql')
5
+ exit 1 unless have_library("libmysql")
6
+ elsif mc = with_config('mysql-config') then
7
+ mc = 'mysql_config' if mc == true
8
+ cflags = `#{mc} --cflags`.chomp
9
+ exit 1 if $? != 0
10
+ libs = `#{mc} --libs`.chomp
11
+ exit 1 if $? != 0
12
+ $CPPFLAGS += ' ' + cflags
13
+ $libs = libs + " " + $libs
14
+ else
15
+ inc, lib = dir_config('mysql', '/usr/local')
16
+ libs = ['m', 'z', 'socket', 'nsl', 'mygcc']
17
+ while not find_library('mysqlclient', 'mysql_query', lib, "#{lib}/mysql") do
18
+ exit 1 if libs.empty?
19
+ have_library(libs.shift)
20
+ end
21
+ end
22
+
23
+ have_func('mysql_ssl_set')
24
+
25
+ if have_header('mysql.h') then
26
+ src = "#include <errmsg.h>\n#include <mysqld_error.h>\n"
27
+ elsif have_header('mysql/mysql.h') then
28
+ src = "#include <mysql/errmsg.h>\n#include <mysql/mysqld_error.h>\n"
29
+ else
30
+ exit 1
31
+ end
32
+
33
+ # make mysql constant
34
+ File::open("conftest.c", "w") do |f|
35
+ f.puts src
36
+ end
37
+ if defined? cpp_command then
38
+ cpp = Config::expand(cpp_command(''))
39
+ else
40
+ cpp = Config::expand sprintf(CPP, $CPPFLAGS, $CFLAGS, '')
41
+ end
42
+ if /mswin32/ =~ RUBY_PLATFORM && !/-E/.match(cpp)
43
+ cpp << " -E"
44
+ end
45
+ unless system "#{cpp} > confout" then
46
+ exit 1
47
+ end
48
+ File::unlink "conftest.c"
49
+
50
+ error_syms = []
51
+ IO::foreach('confout') do |l|
52
+ next unless l =~ /errmsg\.h|mysqld_error\.h/
53
+ fn = l.split(/\"/)[1]
54
+ IO::foreach(fn) do |m|
55
+ if m =~ /^#define\s+([CE]R_[0-9A-Z_]+)/ then
56
+ error_syms << $1
57
+ end
58
+ end
59
+ end
60
+ File::unlink 'confout'
61
+ error_syms.uniq!
62
+
63
+ newf = File::open('mysql.c', 'w')
64
+ IO::foreach('mysql.c.in') do |l|
65
+ newf.puts l
66
+ if l =~ /\/\* Mysql::Error constant \*\// then
67
+ error_syms.each do |s|
68
+ newf.puts " rb_define_const(eMysql, \"#{s}\", INT2NUM(#{s}));"
69
+ end
70
+ end
71
+ end
72
+
73
+ create_makefile("mysql")
@@ -1,5 +1,5 @@
1
1
  /* ruby mysql module
2
- * $Id: mysql.c.in,v 1.32 2006/06/04 14:29:28 tommy Exp $
2
+ * $Id: mysql.c.in,v 1.38 2006-12-20 05:31:52 tommy Exp $
3
3
  */
4
4
 
5
5
  #include "ruby.h"
@@ -14,7 +14,7 @@
14
14
  #include <mysql/mysqld_error.h>
15
15
  #endif
16
16
 
17
- #define MYSQL_RUBY_VERSION 20701
17
+ #define MYSQL_RUBY_VERSION 20703
18
18
 
19
19
  #define GC_STORE_RESULT_LIMIT 20
20
20
 
@@ -182,7 +182,6 @@ static VALUE mysqlres2obj(MYSQL_RES* res)
182
182
  static VALUE make_field_obj(MYSQL_FIELD* f)
183
183
  {
184
184
  VALUE obj;
185
- VALUE hash;
186
185
  if (f == NULL)
187
186
  return Qnil;
188
187
  obj = rb_obj_alloc(cMysqlField);
@@ -446,8 +445,6 @@ static VALUE my_close(VALUE obj)
446
445
  {
447
446
  MYSQL* m = GetHandler(obj);
448
447
  mysql_close(m);
449
- if (mysql_errno(m))
450
- mysql_raise(m);
451
448
  GetMysqlStruct(obj)->connection = Qfalse;
452
449
  return obj;
453
450
  }
@@ -700,6 +697,7 @@ static VALUE res_free(VALUE);
700
697
  /* query(sql) */
701
698
  static VALUE query(VALUE obj, VALUE sql)
702
699
  {
700
+ int loop = 0;
703
701
  MYSQL* m = GetHandler(obj);
704
702
  Check_Type(sql, T_STRING);
705
703
  if (rb_block_given_p()) {
@@ -718,11 +716,12 @@ static VALUE query(VALUE obj, VALUE sql)
718
716
  VALUE robj = mysqlres2obj(res);
719
717
  rb_ensure(rb_yield, robj, res_free, robj);
720
718
  }
721
- }
722
719
  #if MYSQL_VERSION_ID >= 40101
723
- while (mysql_next_result(m) == 0);
720
+ if ((loop = mysql_next_result(m)) > 0)
721
+ mysql_raise(m);
722
+ } while (loop == 0);
724
723
  #else
725
- while (0);
724
+ } while (0);
726
725
  #endif
727
726
  return obj;
728
727
  }
@@ -1313,7 +1312,6 @@ static VALUE stmt_execute(int argc, VALUE *argv, VALUE obj)
1313
1312
  struct mysql_stmt *s = DATA_PTR(obj);
1314
1313
  MYSQL_STMT *stmt = s->stmt;
1315
1314
  my_bool true = 1;
1316
- my_bool false = 0;
1317
1315
  int i;
1318
1316
 
1319
1317
  check_stmt_closed(obj);
@@ -1334,7 +1332,7 @@ static VALUE stmt_execute(int argc, VALUE *argv, VALUE obj)
1334
1332
  case T_BIGNUM:
1335
1333
  s->param.bind[i].buffer_type = MYSQL_TYPE_LONGLONG;
1336
1334
  s->param.bind[i].buffer = &(s->param.buffer[i]);
1337
- *(long long*)(s->param.bind[i].buffer) = rb_big2ll(argv[i]);
1335
+ *(LONG_LONG*)(s->param.bind[i].buffer) = rb_big2ll(argv[i]);
1338
1336
  break;
1339
1337
  case T_FLOAT:
1340
1338
  s->param.bind[i].buffer_type = MYSQL_TYPE_DOUBLE;
@@ -1435,7 +1433,7 @@ static VALUE stmt_fetch(VALUE obj)
1435
1433
  v = INT2NUM(*(long*)s->result.bind[i].buffer);
1436
1434
  break;
1437
1435
  case MYSQL_TYPE_LONGLONG:
1438
- v = rb_ll2inum(*(long long*)s->result.bind[i].buffer);
1436
+ v = rb_ll2inum(*(LONG_LONG*)s->result.bind[i].buffer);
1439
1437
  break;
1440
1438
  case MYSQL_TYPE_DOUBLE:
1441
1439
  v = rb_float_new(*(double*)s->result.bind[i].buffer);
@@ -1560,6 +1558,7 @@ static enum enum_field_types buffer_type(MYSQL_FIELD *field)
1560
1558
  case FIELD_TYPE_DECIMAL:
1561
1559
  #if MYSQL_VERSION_ID >= 50003
1562
1560
  case FIELD_TYPE_NEWDECIMAL:
1561
+ case FIELD_TYPE_BIT:
1563
1562
  #endif
1564
1563
  return MYSQL_TYPE_STRING;
1565
1564
  case FIELD_TYPE_BLOB:
@@ -1630,8 +1629,11 @@ static VALUE stmt_result_metadata(VALUE obj)
1630
1629
  MYSQL_RES *res;
1631
1630
  check_stmt_closed(obj);
1632
1631
  res = mysql_stmt_result_metadata(s->stmt);
1633
- if (res == NULL && mysql_stmt_errno(s->stmt) != 0)
1632
+ if (res == NULL) {
1633
+ if (mysql_stmt_errno(s->stmt) != 0)
1634
1634
  mysql_stmt_raise(s->stmt);
1635
+ return Qnil;
1636
+ }
1635
1637
  return mysqlres2obj(res);
1636
1638
  }
1637
1639
 
@@ -1700,6 +1702,7 @@ static VALUE time_initialize(int argc, VALUE* argv, VALUE obj)
1700
1702
  rb_iv_set(obj, "second", NILorFIXvalue(second));
1701
1703
  rb_iv_set(obj, "neg", (neg == Qnil || neg == Qfalse) ? Qfalse : Qtrue);
1702
1704
  rb_iv_set(obj, "second_part", NILorFIXvalue(second_part));
1705
+ return obj;
1703
1706
  }
1704
1707
 
1705
1708
  static VALUE time_inspect(VALUE obj)
@@ -2080,6 +2083,10 @@ void Init_mysql(void)
2080
2083
  rb_define_const(cMysqlField, "TYPE_DATETIME", INT2NUM(FIELD_TYPE_DATETIME));
2081
2084
  #if MYSQL_VERSION_ID >= 32130
2082
2085
  rb_define_const(cMysqlField, "TYPE_YEAR", INT2NUM(FIELD_TYPE_YEAR));
2086
+ #endif
2087
+ #if MYSQL_VERSION_ID >= 50003
2088
+ rb_define_const(cMysqlField, "TYPE_BIT", INT2NUM(FIELD_TYPE_BIT));
2089
+ rb_define_const(cMysqlField, "TYPE_NEWDECIMAL", INT2NUM(FIELD_TYPE_NEWDECIMAL));
2083
2090
  #endif
2084
2091
  rb_define_const(cMysqlField, "TYPE_SET", INT2NUM(FIELD_TYPE_SET));
2085
2092
  rb_define_const(cMysqlField, "TYPE_BLOB", INT2NUM(FIELD_TYPE_BLOB));
@@ -0,0 +1,13 @@
1
+ --- mysql.c.in Tue Dec 19 22:31:52 2006
2
+ +++ mysql.c.in.new Thu Dec 28 09:33:30 2006
3
+ @@ -14,6 +14,10 @@
4
+ #include <mysql/mysqld_error.h>
5
+ #endif
6
+
7
+ +#if !defined(HAVE_ULONG) && !defined(TARGET_OS_LINUX) && !defined(__USE_MISC)
8
+ +typedef unsigned long ulong; /* Short for unsigned long */
9
+ +#endif
10
+ +
11
+ #define MYSQL_RUBY_VERSION 20703
12
+
13
+ #define GC_STORE_RESULT_LIMIT 20
Binary file
@@ -1,5 +1,5 @@
1
1
  #!/usr/local/bin/ruby
2
- # $Id: test.rb,v 1.18 2006/06/04 14:39:53 tommy Exp $
2
+ # $Id: test.rb,v 1.23 2006-12-20 05:31:52 tommy Exp $
3
3
 
4
4
  require "test/unit"
5
5
  require "./mysql.o"
@@ -16,7 +16,7 @@ class TC_Mysql < Test::Unit::TestCase
16
16
  end
17
17
 
18
18
  def test_version()
19
- assert_equal(20701, Mysql::VERSION)
19
+ assert_equal(20703, Mysql::VERSION)
20
20
  end
21
21
 
22
22
  def test_init()
@@ -48,11 +48,11 @@ class TC_Mysql < Test::Unit::TestCase
48
48
  end
49
49
 
50
50
  def test_get_client_info()
51
- assert_match(/^\d.\d+.\d+(-.*)?$/, Mysql.get_client_info())
51
+ assert_match(/^\d.\d+.\d+[a-z]?(-.*)?$/, Mysql.get_client_info())
52
52
  end
53
53
 
54
54
  def test_client_info()
55
- assert_match(/^\d.\d+.\d+(-.*)?$/, Mysql.client_info())
55
+ assert_match(/^\d.\d+.\d+[a-z]?(-.*)?$/, Mysql.client_info())
56
56
  end
57
57
 
58
58
  def test_options()
@@ -103,7 +103,7 @@ class TC_Mysql2 < Test::Unit::TestCase
103
103
  @m = Mysql.new(@host, @user, @pass, @db, @port, @sock, @flag)
104
104
  end
105
105
  def teardown()
106
- @m.close
106
+ @m.close if @m
107
107
  end
108
108
 
109
109
  def test_affected_rows()
@@ -142,6 +142,33 @@ class TC_Mysql2 < Test::Unit::TestCase
142
142
  end
143
143
  end if Mysql.client_version >= 40100
144
144
 
145
+ def test_query_with_block()
146
+ if @m.server_version >= 40100 then
147
+ expect = [["1","2","3"], ["4","5","6"]]
148
+ @m.query("select 1,2,3; select 4,5,6") {|res|
149
+ assert_equal(1, res.num_rows)
150
+ assert_equal(expect.shift, res.fetch_row)
151
+ }
152
+ assert(expect.empty?)
153
+ expect = [["1","2","3"], ["4","5","6"]]
154
+ assert_raises(Mysql::Error) {
155
+ @m.query("select 1,2,3; hoge; select 4,5,6") {|res|
156
+ assert_equal(1, res.num_rows)
157
+ assert_equal(expect.shift, res.fetch_row)
158
+ }
159
+ }
160
+ assert_equal(1, expect.size)
161
+ expect = [["1","2","3"], ["4","5","6"]]
162
+ assert_raises(Mysql::Error) {
163
+ @m.query("select 1,2,3; select 4,5,6; hoge") {|res|
164
+ assert_equal(1, res.num_rows)
165
+ assert_equal(expect.shift, res.fetch_row)
166
+ }
167
+ }
168
+ assert(expect.empty?)
169
+ end
170
+ end
171
+
145
172
  def test_set_server_option()
146
173
  if @m.server_version >= 40101 then
147
174
  assert_equal(@m, @m.set_server_option(Mysql::OPTION_MULTI_STATEMENTS_ON))
@@ -662,6 +689,31 @@ class TC_MysqlStmt2 < Test::Unit::TestCase
662
689
  end
663
690
  end
664
691
 
692
+ def test_fetch_bit()
693
+ if @m.client_version >= 50003 and @m.server_version >= 50003 then
694
+ @m.query("create temporary table t (i bit(8))")
695
+ @m.query("insert into t values (0),(-1),(127),(-128),(255),(-255),(256)")
696
+ @s.prepare("select i from t")
697
+ @s.execute
698
+ assert_equal(["\x00"], @s.fetch)
699
+ assert_equal(["\xff"], @s.fetch)
700
+ assert_equal(["\x7f"], @s.fetch)
701
+ assert_equal(["\xff"], @s.fetch)
702
+ assert_equal(["\xff"], @s.fetch)
703
+ assert_equal(["\xff"], @s.fetch)
704
+ assert_equal(["\xff"], @s.fetch)
705
+ @m.query("create temporary table t2 (i bit(64))")
706
+ @m.query("insert into t2 values (0),(-1),(4294967296),(18446744073709551615),(18446744073709551616)")
707
+ @s.prepare("select i from t2")
708
+ @s.execute
709
+ assert_equal(["\x00\x00\x00\x00\x00\x00\x00\x00"], @s.fetch)
710
+ assert_equal(["\xff\xff\xff\xff\xff\xff\xff\xff"], @s.fetch)
711
+ assert_equal(["\x00\x00\x00\x01\x00\x00\x00\x00"], @s.fetch)
712
+ assert_equal(["\xff\xff\xff\xff\xff\xff\xff\xff"], @s.fetch)
713
+ assert_equal(["\xff\xff\xff\xff\xff\xff\xff\xff"], @s.fetch)
714
+ end
715
+ end
716
+
665
717
  def test_fetch_tinyint()
666
718
  if @m.server_version >= 40100 then
667
719
  @m.query("create temporary table t (i tinyint)")
@@ -1254,6 +1306,14 @@ class TC_MysqlStmt2 < Test::Unit::TestCase
1254
1306
  end
1255
1307
  end
1256
1308
 
1309
+ def test_result_metadata_nodata()
1310
+ if @m.server_version >= 40100 then
1311
+ @m.query("create temporary table t (i int)")
1312
+ @s.prepare("insert into t values (1)")
1313
+ assert_equal(nil, @s.result_metadata())
1314
+ end
1315
+ end
1316
+
1257
1317
  def test_row_seek_tell()
1258
1318
  if @m.server_version >= 40100 then
1259
1319
  @m.query("create temporary table t (i int)")
@@ -1285,7 +1345,11 @@ class TC_MysqlStmt2 < Test::Unit::TestCase
1285
1345
  def test_sqlstate()
1286
1346
  if @m.server_version >= 40100 then
1287
1347
  @s.prepare("select 1")
1288
- assert_equal("", @s.sqlstate)
1348
+ if @m.client_version >= 50000 then
1349
+ assert_equal("00000", @s.sqlstate)
1350
+ else
1351
+ assert_equal("", @s.sqlstate)
1352
+ end
1289
1353
  assert_raises(Mysql::Error){@s.prepare("hogehoge")}
1290
1354
  assert_equal("42000", @s.sqlstate)
1291
1355
  end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: mysql
5
5
  version: !ruby/object:Gem::Version
6
- version: 2.7.1
7
- date: 2006-06-20 00:00:00 -06:00
6
+ version: 2.7.3
7
+ date: 2006-12-28 00:00:00 -07:00
8
8
  summary: A win32-native build of the MySQL API module for Ruby.
9
9
  require_paths:
10
10
  - ext
@@ -25,14 +25,15 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
25
  platform: mswin32
26
26
  signing_key:
27
27
  cert_chain:
28
+ post_install_message:
28
29
  authors:
29
30
  - Kevin Williams
30
31
  files:
31
32
  - docs
32
33
  - ext/mysql.so
33
34
  - ext/extconf.rb
34
- - ext/extconf.rb.orig
35
35
  - ext/mysql.c.in
36
+ - ext/mysql.c.in.patch
36
37
  - ext/test.rb
37
38
  - README
38
39
  - Rakefile
@@ -1,67 +0,0 @@
1
- require 'mkmf'
2
-
3
- if mc = with_config('mysql-config') then
4
- mc = 'mysql_config' if mc == true
5
- cflags = `#{mc} --cflags`.chomp
6
- exit 1 if $? != 0
7
- libs = `#{mc} --libs`.chomp
8
- exit 1 if $? != 0
9
- $CPPFLAGS += ' ' + cflags
10
- $libs = libs + " " + $libs
11
- else
12
- inc, lib = dir_config('mysql', '/usr/local')
13
- libs = ['m', 'z', 'socket', 'nsl']
14
- while not find_library('mysqlclient', 'mysql_query', lib, "#{lib}/mysql") do
15
- exit 1 if libs.empty?
16
- have_library(libs.shift)
17
- end
18
- end
19
-
20
- have_func('mysql_ssl_set')
21
-
22
- if have_header('mysql.h') then
23
- src = "#include <errmsg.h>\n#include <mysqld_error.h>\n"
24
- elsif have_header('mysql/mysql.h') then
25
- src = "#include <mysql/errmsg.h>\n#include <mysql/mysqld_error.h>\n"
26
- else
27
- exit 1
28
- end
29
-
30
- # make mysql constant
31
- File::open("conftest.c", "w") do |f|
32
- f.puts src
33
- end
34
- if defined? cpp_command then
35
- cpp = Config::expand(cpp_command(''))
36
- else
37
- cpp = Config::expand sprintf(CPP, $CPPFLAGS, $CFLAGS, '')
38
- end
39
- unless system "#{cpp} > confout" then
40
- exit 1
41
- end
42
- File::unlink "conftest.c"
43
-
44
- error_syms = []
45
- IO::foreach('confout') do |l|
46
- next unless l =~ /errmsg\.h|mysqld_error\.h/
47
- fn = l.split(/\"/)[1]
48
- IO::foreach(fn) do |m|
49
- if m =~ /^#define\s+([CE]R_[0-9A-Z_]+)/ then
50
- error_syms << $1
51
- end
52
- end
53
- end
54
- File::unlink 'confout'
55
- error_syms.uniq!
56
-
57
- newf = File::open('mysql.c', 'w')
58
- IO::foreach('mysql.c.in') do |l|
59
- newf.puts l
60
- if l =~ /\/\* Mysql::Error constant \*\// then
61
- error_syms.each do |s|
62
- newf.puts " rb_define_const(eMysql, \"#{s}\", INT2NUM(#{s}));"
63
- end
64
- end
65
- end
66
-
67
- create_makefile("mysql")