In Files

Parent

TC_MysqlStmt2

Public Instance Methods

setup() click to toggle source
     # File test.rb, line 443
443:   def setup()
444:     @host, @user, @pass, db, port, sock, flag = ARGV
445:     @db = db || "test"
446:     @port = port.to_i
447:     @sock = sock.nil? || sock.empty? ? nil : sock
448:     @flag = flag.to_i
449:     @m = Mysql.new(@host, @user, @pass, @db, @port, @sock, @flag)
450:     @s = @m.stmt_init()
451:   end
teardown() click to toggle source
     # File test.rb, line 452
452:   def teardown()
453:     @s.close
454:     @m.close
455:   end
test_affected_rows() click to toggle source
     # File test.rb, line 457
457:   def test_affected_rows()
458:     if @m.server_version >= 40100 then
459:       @m.query("create temporary table t (i int, c char(10))")
460:       @s.prepare("insert into t values (?,?)")
461:       @s.execute(1, "hoge")
462:       assert_equal(1, @s.affected_rows())
463:       @s.execute(2, "hoge")
464:       @s.execute(3, "hoge")
465:       @s.prepare("update t set c=?")
466:       @s.execute("fuga")
467:       assert_equal(3, @s.affected_rows())
468:     end
469:   end
test_bind_result_fixnum() click to toggle source
     # File test.rb, line 539
539:   def test_bind_result_fixnum()
540:     if @m.server_version >= 40100 then
541:       @m.query("create temporary table t (i int, c char(10), d double, t datetime)")
542:       @m.query("insert into t values (123, '9abcdefg', 1.2345, 20050802235011)")
543:       @s.prepare("select * from t")
544:       @s.bind_result(Fixnum, Fixnum, Fixnum, Fixnum)
545:       @s.execute
546:       a = @s.fetch
547:       if Mysql.client_version < 50000 then
548:         assert_equal([123, 9, 1, 2005], a)
549:       else
550:         assert_equal([123, 9, 1, 20050802235011.0], a)
551:       end
552:     end
553:   end
test_bind_result_float() click to toggle source
     # File test.rb, line 567
567:   def test_bind_result_float()
568:     if @m.server_version >= 40100 then
569:       @m.query("create temporary table t (i int, c char(10), d double, t datetime)")
570:       @m.query("insert into t values (123, '9abcdefg', 1.2345, 20050802235011)")
571:       @s.prepare("select * from t")
572:       @s.bind_result(Float, Float, Float, Float)
573:       @s.execute
574:       a = @s.fetch
575:       if Mysql.client_version < 50000 then
576:         assert_equal([123.0, 9.0, 1.2345, 2005.0], a)
577:       else
578:         assert_equal([123.0, 9.0, 1.2345, 20050802235011.0], a)
579:       end
580:     end
581:   end
test_bind_result_integer() click to toggle source
     # File test.rb, line 523
523:   def test_bind_result_integer()
524:     if @m.server_version >= 40100 then
525:       @m.query("create temporary table t (i int, c char(10), d double, t datetime)")
526:       @m.query("insert into t values (123, '9abcdefg', 1.2345, 20050802235011)")
527:       @s.prepare("select * from t")
528:       @s.bind_result(Integer, Integer, Integer, Integer)
529:       @s.execute
530:       a = @s.fetch
531:       if Mysql.client_version < 50000 then
532:         assert_equal([123, 9, 1, 2005], a)
533:       else
534:         assert_equal([123, 9, 1, 20050802235011], a)
535:       end
536:     end
537:   end
test_bind_result_mysqltime() click to toggle source
     # File test.rb, line 583
583:   def test_bind_result_mysqltime()
584:     if @m.server_version >= 40100 then
585:       @m.query("create temporary table t (i int, c char(10), d double, t datetime)")
586:       @m.query("insert into t values (123, '9abcdefg', 1.2345, 20050802235011)")
587:       @s.prepare("select * from t")
588:       @s.bind_result(Mysql::Time, Mysql::Time, Mysql::Time, Mysql::Time)
589:       @s.execute
590:       a = @s.fetch
591:       if Mysql.client_version < 50000 then
592:         assert_equal([Mysql::Time.new, Mysql::Time.new, Mysql::Time.new, Mysql::Time.new(2005,8,2,23,50,11)], a)
593:       else
594:         assert_equal([Mysql::Time.new(2000,1,23), Mysql::Time.new, Mysql::Time.new, Mysql::Time.new(2005,8,2,23,50,11)], a)
595:       end
596:     end
597:   end
test_bind_result_nil() click to toggle source
     # File test.rb, line 495
495:   def test_bind_result_nil()
496:     if @m.server_version >= 40100 then
497:       @m.query("create temporary table t (i int, c char(10), d double, t datetime)")
498:       @m.query("insert into t values (123, '9abcdefg', 1.2345, 20050802235011)")
499:       @s.prepare("select * from t")
500:       @s.bind_result(nil,nil,nil,nil)
501:       @s.execute
502:       a = @s.fetch
503:       assert_equal([123, "9abcdefg", 1.2345, Mysql::Time.new(2005,8,2,23,50,11)], a)
504:     end
505:   end
test_bind_result_numeric() click to toggle source
     # File test.rb, line 507
507:   def test_bind_result_numeric()
508:     if @m.server_version >= 40100 then
509:       @m.query("create temporary table t (i int, c char(10), d double, t datetime)")
510:       @m.query("insert into t values (123, '9abcdefg', 1.2345, 20050802235011)")
511:       @s.prepare("select * from t")
512:       @s.bind_result(Numeric, Numeric, Numeric, Numeric)
513:       @s.execute
514:       a = @s.fetch
515:       if Mysql.client_version < 50000 then
516:         assert_equal([123, 9, 1, 2005], a)
517:       else
518:         assert_equal([123, 9, 1, 20050802235011], a)
519:       end
520:     end
521:   end
test_bind_result_string() click to toggle source
     # File test.rb, line 555
555:   def test_bind_result_string()
556:     if @m.server_version >= 40100 then
557:       @m.query("create temporary table t (i int, c char(10), d double, t datetime)")
558:       @m.query("insert into t values (123, '9abcdefg', 1.2345, 20050802235011)")
559:       @s.prepare("select * from t")
560:       @s.bind_result(String, String, String, String)
561:       @s.execute
562:       a = @s.fetch
563:       assert_equal(["123", "9abcdefg", "1.2345", "2005-08-02 23:50:11"], a)
564:     end
565:   end
test_bind_result_unknown() click to toggle source
     # File test.rb, line 599
599:   def test_bind_result_unknown()
600:     if @m.server_version >= 40100 then
601:       @m.query("create temporary table t (i int, c char(10), d double, t datetime)")
602:       @m.query("insert into t values (123, '9abcdefg', 1.2345, 20050802235011)")
603:       @s.prepare("select * from t")
604:       assert_raises(TypeError){@s.bind_result(Time, nil, nil, nil)}
605:     end
606:   end
test_bind_result_unmatch_count() click to toggle source
     # File test.rb, line 608
608:   def test_bind_result_unmatch_count()
609:     if @m.server_version >= 40100 then
610:       @m.query("create temporary table t (i int, c char(10), d double, t datetime)")
611:       @m.query("insert into t values (123, '9abcdefg', 1.2345, 20050802235011)")
612:       @s.prepare("select * from t")
613:       assert_raises(Mysql::Error){@s.bind_result(nil, nil)}
614:     end
615:   end
test_data_seek() click to toggle source
     # File test.rb, line 617
617:   def test_data_seek()
618:     if @m.server_version >= 40100 then
619:       @m.query("create temporary table t (i int)")
620:       @m.query("insert into t values (0),(1),(2),(3),(4),(5)")
621:       @s.prepare("select i from t")
622:       @s.execute
623:       assert_equal([0], @s.fetch)
624:       assert_equal([1], @s.fetch)
625:       assert_equal([2], @s.fetch)
626:       @s.data_seek(5)
627:       assert_equal([5], @s.fetch)
628:       @s.data_seek(1)
629:       assert_equal([1], @s.fetch)
630:     end
631:   end
test_each() click to toggle source
      # File test.rb, line 1227
1227:   def test_each()
1228:     if @m.server_version >= 40100 then
1229:       @m.query("create temporary table t (i int, c char(255), d datetime)")
1230:       @m.query("insert into t values (1,'abc','19701224235905'),(2,'def','21120903123456'),(3,'123',null)")
1231:       @s.prepare("select * from t")
1232:       @s.execute
1233:       c = 0
1234:       @s.each do |a|
1235:         case c
1236:         when 0
1237:           assert_equal([1,"abc",Mysql::Time.new(1970,12,24,23,59,05)], a)
1238:           assert_equal(Encoding.default_external, a[1].encoding) if RUBY_VERSION =~ /1.9/
1239:         when 1
1240:           assert_equal([2,"def",Mysql::Time.new(2112,9,3,12,34,56)], a)
1241:         when 2
1242:           assert_equal([3,"123",nil], a)
1243:         else
1244:           raise
1245:         end
1246:         c += 1
1247:       end
1248:     end
1249:   end
test_execute() click to toggle source
     # File test.rb, line 643
643:   def test_execute()
644:     if @m.server_version >= 40100 then
645:       @m.query("create temporary table t (i int)")
646:       @s.prepare("insert into t values (123)")
647:       @s.execute()
648:       assert_equal(1, @s.affected_rows)
649:       @s.execute()
650:       assert_equal(1, @s.affected_rows)
651:       assert_equal(2, @m.query("select count(*) from t").fetch_row[0].to_i)
652:     end
653:   end
test_execute2() click to toggle source
     # File test.rb, line 655
655:   def test_execute2()
656:     if @m.server_version >= 40100 then
657:       @m.query("create temporary table t (i int)")
658:       @s.prepare("insert into t values (?)")
659:       @s.execute(123)
660:       @s.execute("456")
661:       @s.prepare("select * from t")
662:       @s.execute
663:       assert_equal([123], @s.fetch)
664:       assert_equal([456], @s.fetch)
665:     end
666:   end
test_execute3() click to toggle source
     # File test.rb, line 668
668:   def test_execute3()
669:     if @m.server_version >= 40100 then
670:       @m.query("create temporary table t (i int, c char(255), t timestamp)")
671:       @s.prepare("insert into t values (?,?,?)")
672:       @s.execute(123, "hoge", Time.local(2005,7,19,23,53,0));
673:       assert_raises(Mysql::Error){@s.execute(123, "hoge")}
674:       assert_raises(Mysql::Error){@s.execute(123, "hoge", 0, "fuga")}
675:       @s.prepare("select * from t")
676:       @s.execute
677:       assert_equal([123, "hoge", Mysql::Time.new(2005,7,19,23,53,0)], @s.fetch)
678:     end
679:   end
test_execute4() click to toggle source
     # File test.rb, line 681
681:   def test_execute4()
682:     if @m.server_version >= 40100 then
683:       @m.query("create temporary table t (i int, c char(255), t timestamp)")
684:       @s.prepare("insert into t values (?,?,?)")
685:       @s.execute(nil, "hoge", Mysql::Time.new(2005,7,19,23,53,0));
686:       @s.prepare("select * from t")
687:       @s.execute
688:       assert_equal([nil, "hoge", Mysql::Time.new(2005,7,19,23,53,0)], @s.fetch)
689:     end
690:   end
test_execute5() click to toggle source
     # File test.rb, line 692
692:   def test_execute5()
693:     if @m.server_version >= 40100 then
694:       [30, 31, 32, 62, 63].each do |i|
695:         v, = @m.prepare("select cast(? as signed)").execute(2**i-1).fetch
696:         assert_equal(2**i-1, v)
697:         v, = @m.prepare("select cast(? as signed)").execute(-(2**i)).fetch
698:         assert_equal(-(2**i), v)
699:       end
700:     end
701:   end
test_fetch() click to toggle source
     # File test.rb, line 703
703:   def test_fetch()
704:     if @m.server_version >= 40100 then
705:       @s.prepare("select 123, 'abc', null")
706:       @s.execute()
707:       assert_equal([123, "abc", nil], @s.fetch())
708:     end
709:   end
test_fetch_bigint() click to toggle source
     # File test.rb, line 860
860:   def test_fetch_bigint()
861:     if @m.server_version >= 40100 then
862:       @m.query("create temporary table t (i bigint)")
863:       @m.query("insert into t values (0),(-1),(9223372036854775807),(-9223372036854775808),(18446744073709551615),(-18446744073709551615),(18446744073709551616)")
864:       @s.prepare("select i from t")
865:       @s.execute
866:       assert_equal([0], @s.fetch)
867:       assert_equal([1], @s.fetch)
868:       assert_equal([9223372036854775807], @s.fetch)
869:       assert_equal([9223372036854775808], @s.fetch)
870:       if @m.server_version >= 50000 then
871:         assert_equal([9223372036854775807], @s.fetch)
872:       else
873:         assert_equal([1], @s.fetch)                       # MySQL problem
874:       end
875:       assert_equal([9223372036854775808], @s.fetch)
876:       assert_equal([9223372036854775807], @s.fetch)
877:     end
878:   end
test_fetch_bigint_unsigned() click to toggle source
     # File test.rb, line 880
880:   def test_fetch_bigint_unsigned()
881:     if @m.server_version >= 40100 then
882:       @m.query("create temporary table t (i bigint unsigned)")
883:       @m.query("insert into t values (0),(-1),(9223372036854775807),(-9223372036854775808),(18446744073709551615),(-18446744073709551615),(18446744073709551616)")
884:       @s.prepare("select i from t")
885:       @s.execute
886:       assert_equal([0], @s.fetch)
887:       if @m.server_version >= 50000 then
888:         assert_equal([0], @s.fetch)
889:       else
890:         assert_equal([18446744073709551615], @s.fetch) # MySQL problem
891:       end
892:       assert_equal([9223372036854775807], @s.fetch)
893:       if @m.server_version >= 50000 then
894:         assert_equal([0], @s.fetch)
895:       else
896:         assert_equal([9223372036854775808], @s.fetch) # MySQL problem
897:       end
898:       assert_equal([18446744073709551615], @s.fetch)
899:       assert_equal([0], @s.fetch)
900:       assert_equal([18446744073709551615], @s.fetch)
901:     end
902:   end
test_fetch_binary() click to toggle source
      # File test.rb, line 1077
1077:   def test_fetch_binary()
1078:     if @m.server_version >= 40100 then
1079:       @m.query("create temporary table t (i binary(10))")
1080:       @m.query("insert into t values (null),('abc')")
1081:       @s.prepare("select i from t")
1082:       @s.execute
1083:       assert_equal([nil], @s.fetch)
1084:       if @m.server_version >= 50000 then
1085:         assert_equal(["abc\00\\00\\00\\00\\00\\00\\00""], @s.fetch)
1086:       else
1087:         assert_equal(["abc"], @s.fetch)
1088:       end
1089:     end
1090:   end
test_fetch_bit() click to toggle source
     # File test.rb, line 711
711:   def test_fetch_bit()
712:     if @m.client_version >= 50003 and @m.server_version >= 50003 then
713:       @m.query("create temporary table t (i bit(8))")
714:       @m.query("insert into t values (0),(-1),(127),(-128),(255),(-255),(256)")
715:       @s.prepare("select i from t")
716:       @s.execute
717:       assert_equal(["\x00"], @s.fetch)
718:       assert_equal(["\xff"], @s.fetch)
719:       assert_equal(["\x7f"], @s.fetch)
720:       assert_equal(["\xff"], @s.fetch)
721:       assert_equal(["\xff"], @s.fetch)
722:       assert_equal(["\xff"], @s.fetch)
723:       assert_equal(["\xff"], @s.fetch)
724:       @m.query("create temporary table t2 (i bit(64))")
725:       @m.query("insert into t2 values (0),(-1),(4294967296),(18446744073709551615),(18446744073709551616)")
726:       @s.prepare("select i from t2")
727:       @s.execute
728:       assert_equal(["\x00\x00\x00\x00\x00\x00\x00\x00"], @s.fetch)
729:       assert_equal(["\xff\xff\xff\xff\xff\xff\xff\xff"], @s.fetch)
730:       assert_equal(["\x00\x00\x00\x01\x00\x00\x00\x00"], @s.fetch)
731:       assert_equal(["\xff\xff\xff\xff\xff\xff\xff\xff"], @s.fetch)
732:       assert_equal(["\xff\xff\xff\xff\xff\xff\xff\xff"], @s.fetch)
733:     end
734:   end
test_fetch_blob() click to toggle source
      # File test.rb, line 1125
1125:   def test_fetch_blob()
1126:     if @m.server_version >= 40100 then
1127:       @m.query("create temporary table t (i blob)")
1128:       @m.query("insert into t values (null),('abc')")
1129:       @s.prepare("select i from t")
1130:       @s.execute
1131:       assert_equal([nil], @s.fetch)
1132:       assert_equal(["abc"], @s.fetch)
1133:     end
1134:   end
test_fetch_char() click to toggle source
      # File test.rb, line 1055
1055:   def test_fetch_char()
1056:     if @m.server_version >= 40100 then
1057:       @m.query("create temporary table t (i char(10))")
1058:       @m.query("insert into t values (null),('abc')")
1059:       @s.prepare("select i from t")
1060:       @s.execute
1061:       assert_equal([nil], @s.fetch)
1062:       assert_equal(["abc"], @s.fetch)
1063:     end
1064:   end
test_fetch_date() click to toggle source
      # File test.rb, line 994
 994:   def test_fetch_date()
 995:     if @m.server_version >= 40100 then
 996:       @m.query("create temporary table t (i date)")
 997:       @m.query("insert into t values ('0000-00-00'),('1000-01-01'),('9999-12-31')")
 998:       @s.prepare("select i from t")
 999:       @s.execute
1000:       assert_equal([Mysql::Time.new(0,0,0)], @s.fetch)
1001:       assert_equal([Mysql::Time.new(1000,1,1)], @s.fetch)
1002:       assert_equal([Mysql::Time.new(9999,12,31)], @s.fetch)
1003:     end
1004:   end
test_fetch_datetime() click to toggle source
      # File test.rb, line 1006
1006:   def test_fetch_datetime()
1007:     if @m.server_version >= 40100 then
1008:       @m.query("create temporary table t (i datetime)")
1009:       @m.query("insert into t values ('0000-00-00 00:00:00'),('1000-01-01 00:00:00'),('9999-12-31 23:59:59')")
1010:       @s.prepare("select i from t")
1011:       @s.execute
1012:       assert_equal([Mysql::Time.new(0,0,0,0,0,0)], @s.fetch)
1013:       assert_equal([Mysql::Time.new(1000,1,1,0,0,0)], @s.fetch)
1014:       assert_equal([Mysql::Time.new(9999,12,31,23,59,59)], @s.fetch)
1015:     end
1016:   end
test_fetch_decimal() click to toggle source
     # File test.rb, line 960
960:   def test_fetch_decimal()
961:     if (@m.server_version >= 50000 and Mysql.client_version >= 50000) or (@m.server_version >= 40100 and @m.server_version < 50000) then
962:       @m.query("create temporary table t (i decimal)")
963:       @m.query("insert into t values (0),(9999999999),(-9999999999),(10000000000),(-10000000000)")
964:       @s.prepare("select i from t")
965:       @s.execute
966:       assert_equal(["0"], @s.fetch)
967:       assert_equal(["9999999999"], @s.fetch)
968:       assert_equal(["-9999999999"], @s.fetch)
969:       if @m.server_version < 50000 then
970:         assert_equal(["10000000000"], @s.fetch)    # MySQL problem
971:       else
972:         assert_equal(["9999999999"], @s.fetch)
973:       end
974:       assert_equal(["-9999999999"], @s.fetch)
975:     end
976:   end
test_fetch_decimal_unsigned() click to toggle source
     # File test.rb, line 978
978:   def test_fetch_decimal_unsigned()
979:     if (@m.server_version >= 50000 and Mysql.client_version >= 50000) or (@m.server_version >= 40100 and @m.server_version < 50000) then
980:       @m.query("create temporary table t (i decimal unsigned)")
981:       @m.query("insert into t values (0),(9999999998),(9999999999),(-9999999998),(-9999999999),(10000000000),(-10000000000)")
982:       @s.prepare("select i from t")
983:       @s.execute
984:       assert_equal(["0"], @s.fetch)
985:       assert_equal(["9999999998"], @s.fetch)
986:       assert_equal(["9999999999"], @s.fetch)
987:       assert_equal(["0"], @s.fetch)
988:       assert_equal(["0"], @s.fetch)
989:       assert_equal(["9999999999"], @s.fetch)
990:       assert_equal(["0"], @s.fetch)
991:     end
992:   end
test_fetch_double() click to toggle source
     # File test.rb, line 932
932:   def test_fetch_double()
933:     if @m.server_version >= 40100 then
934:       @m.query("create temporary table t (i double)")
935:       @m.query("insert into t values (0),(-1.7976931348623157E+308),(-2.2250738585072014E-308),(2.2250738585072014E-308),(1.7976931348623157E+308)")
936:       @s.prepare("select i from t")
937:       @s.execute
938:       assert_equal([0], @s.fetch)
939:       assert_in_delta(-Float::MAX, @s.fetch[0], Float::EPSILON)
940:       assert_in_delta(-Float::MIN, @s.fetch[0], Float::EPSILON)
941:       assert_in_delta(Float::MIN, @s.fetch[0], Float::EPSILON)
942:       assert_in_delta(Float::MAX, @s.fetch[0], Float::EPSILON)
943:     end
944:   end
test_fetch_double_unsigned() click to toggle source
     # File test.rb, line 946
946:   def test_fetch_double_unsigned()
947:     if @m.server_version >= 40100 then
948:       @m.query("create temporary table t (i double unsigned)")
949:       @m.query("insert into t values (0),(-1.7976931348623157E+308),(-2.2250738585072014E-308),(2.2250738585072014E-308),(1.7976931348623157E+308)")
950:       @s.prepare("select i from t")
951:       @s.execute
952:       assert_equal([0], @s.fetch)
953:       assert_equal([0], @s.fetch)
954:       assert_equal([0], @s.fetch)
955:       assert_in_delta(Float::MIN, @s.fetch[0], Float::EPSILON)
956:       assert_in_delta(Float::MAX, @s.fetch[0], Float::EPSILON)
957:     end
958:   end
test_fetch_enum() click to toggle source
      # File test.rb, line 1191
1191:   def test_fetch_enum()
1192:     if @m.server_version >= 40100 then
1193:       @m.query("create temporary table t (i enum('abc','def'))")
1194:       @m.query("insert into t values (null),(0),(1),(2),('abc'),('def'),('ghi')")
1195:       @s.prepare("select i from t")
1196:       @s.execute
1197:       assert_equal([nil], @s.fetch)
1198:       assert_equal([""], @s.fetch)
1199:       row = @s.fetch
1200:       assert_equal(Encoding.default_external, row[0].encoding) if RUBY_VERSION =~ /1.9/
1201:       assert_equal(["abc"], row)
1202:       assert_equal(["def"], @s.fetch)
1203:       assert_equal(["abc"], @s.fetch)
1204:       assert_equal(["def"], @s.fetch)
1205:       assert_equal([""], @s.fetch)
1206:     end
1207:   end
test_fetch_float() click to toggle source
     # File test.rb, line 904
904:   def test_fetch_float()
905:     if @m.server_version >= 40100 then
906:       @m.query("create temporary table t (i float)")
907:       @m.query("insert into t values (0),(-3.402823466E+38),(-1.175494351E-38),(1.175494351E-38),(3.402823466E+38)")
908:       @s.prepare("select i from t")
909:       @s.execute
910:       assert_equal([0], @s.fetch)
911:       assert_in_delta(3.402823466E+38, @s.fetch[0], 0.000000001E+38)
912:       assert_in_delta(1.175494351E-38, @s.fetch[0], 0.000000001E-38)
913:       assert_in_delta(1.175494351E-38, @s.fetch[0], 0.000000001E-38)
914:       assert_in_delta(3.402823466E+38, @s.fetch[0], 0.000000001E+38)
915:     end
916:   end
test_fetch_float_unsigned() click to toggle source
     # File test.rb, line 918
918:   def test_fetch_float_unsigned()
919:     if @m.server_version >= 40100 then
920:       @m.query("create temporary table t (i float unsigned)")
921:       @m.query("insert into t values (0),(-3.402823466E+38),(-1.175494351E-38),(1.175494351E-38),(3.402823466E+38)")
922:       @s.prepare("select i from t")
923:       @s.execute
924:       assert_equal([0], @s.fetch)
925:       assert_equal([0], @s.fetch)
926:       assert_equal([0], @s.fetch)
927:       assert_in_delta(1.175494351E-38, @s.fetch[0], 0.000000001E-38)
928:       assert_in_delta(3.402823466E+38, @s.fetch[0], 0.000000001E+38)
929:     end
930:   end
test_fetch_int() click to toggle source
     # File test.rb, line 829
829:   def test_fetch_int()
830:     if @m.server_version >= 40100 then
831:       @m.query("create temporary table t (i int)")
832:       @m.query("insert into t values (0),(-1),(2147483647),(-2147483648),(4294967295),(-4294967295),(4294967296)")
833:       @s.prepare("select i from t")
834:       @s.execute
835:       assert_equal([0], @s.fetch)
836:       assert_equal([1], @s.fetch)
837:       assert_equal([2147483647], @s.fetch)
838:       assert_equal([2147483648], @s.fetch)
839:       assert_equal([2147483647], @s.fetch)
840:       assert_equal([2147483648], @s.fetch)
841:     end
842:   end
test_fetch_int_unsigned() click to toggle source
     # File test.rb, line 844
844:   def test_fetch_int_unsigned()
845:     if @m.server_version >= 40100 then
846:       @m.query("create temporary table t (i int unsigned)")
847:       @m.query("insert into t values (0),(-1),(2147483647),(-2147483648),(4294967295),(-4294967295),(4294967296)")
848:       @s.prepare("select i from t")
849:       @s.execute
850:       assert_equal([0], @s.fetch)
851:       assert_equal([0], @s.fetch)
852:       assert_equal([2147483647], @s.fetch)
853:       assert_equal([0], @s.fetch)
854:       assert_equal([4294967295], @s.fetch)
855:       assert_equal([0], @s.fetch)
856:       assert_equal([4294967295], @s.fetch)
857:     end
858:   end
test_fetch_longblob() click to toggle source
      # File test.rb, line 1169
1169:   def test_fetch_longblob()
1170:     if @m.server_version >= 40100 then
1171:       @m.query("create temporary table t (i longblob)")
1172:       @m.query("insert into t values (null),('abc')")
1173:       @s.prepare("select i from t")
1174:       @s.execute
1175:       assert_equal([nil], @s.fetch)
1176:       assert_equal(["abc"], @s.fetch)
1177:     end
1178:   end
test_fetch_longtext() click to toggle source
      # File test.rb, line 1180
1180:   def test_fetch_longtext()
1181:     if @m.server_version >= 40100 then
1182:       @m.query("create temporary table t (i longtext)")
1183:       @m.query("insert into t values (null),('abc')")
1184:       @s.prepare("select i from t")
1185:       @s.execute
1186:       assert_equal([nil], @s.fetch)
1187:       assert_equal(["abc"], @s.fetch)
1188:     end
1189:   end
test_fetch_mediumblob() click to toggle source
      # File test.rb, line 1147
1147:   def test_fetch_mediumblob()
1148:     if @m.server_version >= 40100 then
1149:       @m.query("create temporary table t (i mediumblob)")
1150:       @m.query("insert into t values (null),('abc')")
1151:       @s.prepare("select i from t")
1152:       @s.execute
1153:       assert_equal([nil], @s.fetch)
1154:       assert_equal(["abc"], @s.fetch)
1155:     end
1156:   end
test_fetch_mediumint() click to toggle source
     # File test.rb, line 798
798:   def test_fetch_mediumint()
799:     if @m.server_version >= 40100 then
800:       @m.query("create temporary table t (i mediumint)")
801:       @m.query("insert into t values (0),(-1),(8388607),(-8388608),(16777215),(-16777215),(16777216)")
802:       @s.prepare("select i from t")
803:       @s.execute
804:       assert_equal([0], @s.fetch)
805:       assert_equal([1], @s.fetch)
806:       assert_equal([8388607], @s.fetch)
807:       assert_equal([8388608], @s.fetch)
808:       assert_equal([8388607], @s.fetch)
809:       assert_equal([8388608], @s.fetch)
810:     end
811:   end
test_fetch_mediumint_unsigned() click to toggle source
     # File test.rb, line 813
813:   def test_fetch_mediumint_unsigned()
814:     if @m.server_version >= 40100 then
815:       @m.query("create temporary table t (i mediumint unsigned)")
816:       @m.query("insert into t values (0),(-1),(8388607),(-8388608),(16777215),(-16777215),(16777216)")
817:       @s.prepare("select i from t")
818:       @s.execute
819:       assert_equal([0], @s.fetch)
820:       assert_equal([0], @s.fetch)
821:       assert_equal([8388607], @s.fetch)
822:       assert_equal([0], @s.fetch)
823:       assert_equal([16777215], @s.fetch)
824:       assert_equal([0], @s.fetch)
825:       assert_equal([16777215], @s.fetch)
826:     end
827:   end
test_fetch_mediumtext() click to toggle source
      # File test.rb, line 1158
1158:   def test_fetch_mediumtext()
1159:     if @m.server_version >= 40100 then
1160:       @m.query("create temporary table t (i mediumtext)")
1161:       @m.query("insert into t values (null),('abc')")
1162:       @s.prepare("select i from t")
1163:       @s.execute
1164:       assert_equal([nil], @s.fetch)
1165:       assert_equal(["abc"], @s.fetch)
1166:     end
1167:   end
test_fetch_set() click to toggle source
      # File test.rb, line 1209
1209:   def test_fetch_set()
1210:     if @m.server_version >= 40100 then
1211:       @m.query("create temporary table t (i set('abc','def'))")
1212:       @m.query("insert into t values (null),(0),(1),(2),(3),('abc'),('def'),('abc,def'),('ghi')")
1213:       @s.prepare("select i from t")
1214:       @s.execute
1215:       assert_equal([nil], @s.fetch)
1216:       assert_equal([""], @s.fetch)
1217:       assert_equal(["abc"], @s.fetch)
1218:       assert_equal(["def"], @s.fetch)
1219:       assert_equal(["abc,def"], @s.fetch)
1220:       assert_equal(["abc"], @s.fetch)
1221:       assert_equal(["def"], @s.fetch)
1222:       assert_equal(["abc,def"], @s.fetch)
1223:       assert_equal([""], @s.fetch)
1224:     end
1225:   end
test_fetch_smallint() click to toggle source
     # File test.rb, line 767
767:   def test_fetch_smallint()
768:     if @m.server_version >= 40100 then
769:       @m.query("create temporary table t (i smallint)")
770:       @m.query("insert into t values (0),(-1),(32767),(-32768),(65535),(-65535),(65536)")
771:       @s.prepare("select i from t")
772:       @s.execute
773:       assert_equal([0], @s.fetch)
774:       assert_equal([1], @s.fetch)
775:       assert_equal([32767], @s.fetch)
776:       assert_equal([32768], @s.fetch)
777:       assert_equal([32767], @s.fetch)
778:       assert_equal([32768], @s.fetch)
779:     end
780:   end
test_fetch_smallint_unsigned() click to toggle source
     # File test.rb, line 782
782:   def test_fetch_smallint_unsigned()
783:     if @m.server_version >= 40100 then
784:       @m.query("create temporary table t (i smallint unsigned)")
785:       @m.query("insert into t values (0),(-1),(32767),(-32768),(65535),(-65535),(65536)")
786:       @s.prepare("select i from t")
787:       @s.execute
788:       assert_equal([0], @s.fetch)
789:       assert_equal([0], @s.fetch)
790:       assert_equal([32767], @s.fetch)
791:       assert_equal([0], @s.fetch)
792:       assert_equal([65535], @s.fetch)
793:       assert_equal([0], @s.fetch)
794:       assert_equal([65535], @s.fetch)
795:     end
796:   end
test_fetch_text() click to toggle source
      # File test.rb, line 1136
1136:   def test_fetch_text()
1137:     if @m.server_version >= 40100 then
1138:       @m.query("create temporary table t (i text)")
1139:       @m.query("insert into t values (null),('abc')")
1140:       @s.prepare("select i from t")
1141:       @s.execute
1142:       assert_equal([nil], @s.fetch)
1143:       assert_equal(["abc"], @s.fetch)
1144:     end
1145:   end
test_fetch_time() click to toggle source
      # File test.rb, line 1029
1029:   def test_fetch_time()
1030:     if @m.server_version >= 40100 then
1031:       @m.query("create temporary table t (i time)")
1032:       @m.query("insert into t values ('-838:59:59'),(0),('838:59:59')")
1033:       @s.prepare("select i from t")
1034:       @s.execute
1035:       assert_equal([Mysql::Time.new(0,0,0,838,59,59,true)], @s.fetch)
1036:       assert_equal([Mysql::Time.new(0,0,0,0,0,0,false)], @s.fetch)
1037:       assert_equal([Mysql::Time.new(0,0,0,838,59,59,false)], @s.fetch)
1038:     end
1039:   end
test_fetch_timestamp() click to toggle source
      # File test.rb, line 1018
1018:   def test_fetch_timestamp()
1019:     if @m.server_version >= 40100 then
1020:       @m.query("create temporary table t (i timestamp)")
1021:       @m.query("insert into t values ('1970-01-02 00:00:00'),('2037-12-30 23:59:59')")
1022:       @s.prepare("select i from t")
1023:       @s.execute
1024:       assert_equal([Mysql::Time.new(1970,1,2,0,0,0)], @s.fetch)
1025:       assert_equal([Mysql::Time.new(2037,12,30,23,59,59)], @s.fetch)
1026:     end
1027:   end
test_fetch_tinyblob() click to toggle source
      # File test.rb, line 1103
1103:   def test_fetch_tinyblob()
1104:     if @m.server_version >= 40100 then
1105:       @m.query("create temporary table t (i tinyblob)")
1106:       @m.query("insert into t values (null),('abc')")
1107:       @s.prepare("select i from t")
1108:       @s.execute
1109:       assert_equal([nil], @s.fetch)
1110:       assert_equal(["abc"], @s.fetch)
1111:     end
1112:   end
test_fetch_tinyint() click to toggle source
     # File test.rb, line 736
736:   def test_fetch_tinyint()
737:     if @m.server_version >= 40100 then
738:       @m.query("create temporary table t (i tinyint)")
739:       @m.query("insert into t values (0),(-1),(127),(-128),(255),(-255)")
740:       @s.prepare("select i from t")
741:       @s.execute
742:       assert_equal([0], @s.fetch)
743:       assert_equal([1], @s.fetch)
744:       assert_equal([127], @s.fetch)
745:       assert_equal([128], @s.fetch)
746:       assert_equal([127], @s.fetch)
747:       assert_equal([128], @s.fetch)
748:     end
749:   end
test_fetch_tinyint_unsigned() click to toggle source
     # File test.rb, line 751
751:   def test_fetch_tinyint_unsigned()
752:     if @m.server_version >= 40100 then
753:       @m.query("create temporary table t (i tinyint unsigned)")
754:       @m.query("insert into t values (0),(-1),(127),(-128),(255),(-255),(256)")
755:       @s.prepare("select i from t")
756:       @s.execute
757:       assert_equal([0], @s.fetch)
758:       assert_equal([0], @s.fetch)
759:       assert_equal([127], @s.fetch)
760:       assert_equal([0], @s.fetch)
761:       assert_equal([255], @s.fetch)
762:       assert_equal([0], @s.fetch)
763:       assert_equal([255], @s.fetch)
764:     end
765:   end
test_fetch_tinytext() click to toggle source
      # File test.rb, line 1114
1114:   def test_fetch_tinytext()
1115:     if @m.server_version >= 40100 then
1116:       @m.query("create temporary table t (i tinytext)")
1117:       @m.query("insert into t values (null),('abc')")
1118:       @s.prepare("select i from t")
1119:       @s.execute
1120:       assert_equal([nil], @s.fetch)
1121:       assert_equal(["abc"], @s.fetch)
1122:     end
1123:   end
test_fetch_varbinary() click to toggle source
      # File test.rb, line 1092
1092:   def test_fetch_varbinary()
1093:     if @m.server_version >= 40100 then
1094:       @m.query("create temporary table t (i varbinary(10))")
1095:       @m.query("insert into t values (null),('abc')")
1096:       @s.prepare("select i from t")
1097:       @s.execute
1098:       assert_equal([nil], @s.fetch)
1099:       assert_equal(["abc"], @s.fetch)
1100:     end
1101:   end
test_fetch_varchar() click to toggle source
      # File test.rb, line 1066
1066:   def test_fetch_varchar()
1067:     if @m.server_version >= 40100 then
1068:       @m.query("create temporary table t (i varchar(10))")
1069:       @m.query("insert into t values (null),('abc')")
1070:       @s.prepare("select i from t")
1071:       @s.execute
1072:       assert_equal([nil], @s.fetch)
1073:       assert_equal(["abc"], @s.fetch)
1074:     end
1075:   end
test_fetch_year() click to toggle source
      # File test.rb, line 1041
1041:   def test_fetch_year()
1042:     if @m.server_version >= 40100 then
1043:       @m.query("create temporary table t (i year)")
1044:       @m.query("insert into t values (0),(70),(69),(1901),(2155)")
1045:       @s.prepare("select i from t")
1046:       @s.execute
1047:       assert_equal([0], @s.fetch)
1048:       assert_equal([1970], @s.fetch)
1049:       assert_equal([2069], @s.fetch)
1050:       assert_equal([1901], @s.fetch)
1051:       assert_equal([2155], @s.fetch)
1052:     end
1053:   end
test_field_count() click to toggle source
      # File test.rb, line 1251
1251:   def test_field_count()
1252:     if @m.server_version >= 40100 then
1253:       @s.prepare("select 1,2,3")
1254:       @s.execute()
1255:       assert_equal(3, @s.field_count())
1256:       @s.prepare("set @a=1")
1257:       @s.execute()
1258:       assert_equal(0, @s.field_count())
1259:     end
1260:   end
test_free_result() click to toggle source
      # File test.rb, line 1262
1262:   def test_free_result()
1263:     if @m.server_version >= 40100 then
1264:       @s.free_result()
1265:       @s.prepare("select 1,2,3")
1266:       @s.execute()
1267:       @s.free_result()
1268:     end
1269:   end
test_insert_id() click to toggle source
      # File test.rb, line 1271
1271:   def test_insert_id()
1272:     if @m.server_version >= 40100 then
1273:       @m.query("create temporary table t (i bigint auto_increment, unique(i))")
1274:       @s.prepare("insert into t values (?)")
1275:       @s.execute(0)
1276:       assert_equal(1, @s.insert_id())
1277:       @s.execute(0)
1278:       assert_equal(2, @s.insert_id())
1279:       @s.execute(2**32)
1280:       assert_equal(2**32, @s.insert_id())
1281:       @s.execute(0)
1282:       assert_equal(2**32+1, @s.insert_id())
1283:     end
1284:   end
test_num_rows() click to toggle source
      # File test.rb, line 1286
1286:   def test_num_rows()
1287:     if @m.server_version >= 40100 then
1288:       @m.query("create temporary table t (i int)")
1289:       @m.query("insert into t values (1),(2),(3),(4)")
1290:       @s.prepare("select * from t")
1291:       @s.execute
1292:       assert_equal(4, @s.num_rows())
1293:     end
1294:   end
test_param_count() click to toggle source
      # File test.rb, line 1296
1296:   def test_param_count()
1297:     if @m.server_version >= 40100 then
1298:       @m.query("create temporary table t (a int, b int, c int)")
1299:       @s.prepare("select * from t")
1300:       assert_equal(0, @s.param_count())
1301:       @s.prepare("insert into t values (?,?,?)")
1302:       assert_equal(3, @s.param_count())
1303:     end
1304:   end
test_prepare() click to toggle source
      # File test.rb, line 1312
1312:   def test_prepare()
1313:     if @m.server_version >= 40100 then
1314:       @s.prepare("select 1")
1315:       assert_raises(Mysql::Error){@s.prepare("invalid syntax")}
1316:     end
1317:   end
test_result_metadata() click to toggle source
      # File test.rb, line 1325
1325:   def test_result_metadata()
1326:     if @m.server_version >= 40100 then
1327:       @s.prepare("select 1 foo, 2 bar")
1328:       res = @s.result_metadata()
1329:       f = res.fetch_fields
1330:       assert_equal("foo", f[0].name)
1331:       assert_equal("bar", f[1].name)
1332:     end
1333:   end
test_result_metadata_nodata() click to toggle source
      # File test.rb, line 1335
1335:   def test_result_metadata_nodata()
1336:     if @m.server_version >= 40100 then
1337:       @m.query("create temporary table t (i int)")
1338:       @s.prepare("insert into t values (1)")
1339:       assert_equal(nil, @s.result_metadata())
1340:     end
1341:   end
test_row_seek_tell() click to toggle source
      # File test.rb, line 1343
1343:   def test_row_seek_tell()
1344:     if @m.server_version >= 40100 then
1345:       @m.query("create temporary table t (i int)")
1346:       @m.query("insert into t values (0),(1),(2),(3),(4)")
1347:       @s.prepare("select * from t")
1348:       @s.execute
1349:       row0 = @s.row_tell
1350:       assert_equal([0], @s.fetch)
1351:       assert_equal([1], @s.fetch)
1352:       row2 = @s.row_seek(row0)
1353:       assert_equal([0], @s.fetch)
1354:       @s.row_seek(row2)
1355:       assert_equal([2], @s.fetch)
1356:     end
1357:   end
test_sqlstate() click to toggle source
      # File test.rb, line 1371
1371:   def test_sqlstate()
1372:     if @m.server_version >= 40100 then
1373:       @s.prepare("select 1")
1374:       if @m.client_version >= 50000 then
1375:         assert_equal("00000", @s.sqlstate)
1376:       else
1377:         assert_equal("", @s.sqlstate)
1378:       end
1379:       assert_raises(Mysql::Error){@s.prepare("hogehoge")}
1380:       assert_equal("42000", @s.sqlstate)
1381:     end
1382:   end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.