crystal-lang / crystal-mysql

MySQL connector for Crystal
MIT License
107 stars 36 forks source link

fields too many ? bug #28

Closed lgphp closed 7 years ago

lgphp commented 7 years ago

when fields num too many , about 23 。then

Unexpected EOF (Exception)
0x5f59ef: *MySql::ReadPacket#read_byte!:UInt8 at /home/lgphp/myapp/crystalapp/duobaocwgl/lib/mysql/src/mysql/read_packet.cr 37:18
0x5f5c81: *MySql::ReadPacket#read_byte_array<Int32>:Array(UInt8) at /home/lgphp/myapp/crystalapp/duobaocwgl/lib/mysql/src/mysql/read_packet.cr 130:9
0x5f6531: *MySql::ReadPacket#read_blob:Slice(UInt8) at /home/lgphp/myapp/crystalapp/duobaocwgl/lib/mysql/src/mysql/read_packet.cr 95:5
0x676081: *MySql::Type::Blob::read<MySql::ReadPacket>:Slice(UInt8) at /home/lgphp/myapp/crystalapp/duobaocwgl/lib/mysql/src/mysql/types.cr 220:7
0x6736bb: *MySql::ResultSet#read:(Bool | Float32 | Float64 | Int16 | Int32 | Int64 | Int8 | Slice(UInt8) | String | Time | Nil) at /home/lgphp/myapp/crystalapp/duobaocwgl/lib/mysql/src/mysql/result_set.cr 81:13

if fields have 22 , then program is runing


self.each do
            row = {} of String => DB::Any

            row["col"] = self.read(DB::Any)
            row["col2"] = self.read(DB::Any)
            row["col3"] = self.read(DB::Any)
            row["col4"] = self.read(DB::Any)
            row["col5"] = self.read(DB::Any)
            row["col6"] = self.read(DB::Any)
            row["col7"] = self.read(DB::Any)
            row["col8"] = self.read(DB::Any)
            row["col9"] = self.read(DB::Any)
            row["col10"] = self.read(DB::Any)
            row["col11"] = self.read(DB::Any)
            row["col12"] = self.read(DB::Any)
            row["col13"] = self.read(DB::Any)
            row["col14"] = self.read(DB::Any)
            row["col15"] = self.read(DB::Any)
            row["col16"] = self.read(DB::Any)
            row["col17"] = self.read(DB::Any)
            row["col18"] = self.read(DB::Any)
            row["col19"] = self.read(DB::Any)
            row["col20"] = self.read(DB::Any)
            row["col21"] = self.read(DB::Any)
            row["col22"] = self.read(DB::Any)
            row["col23"] = self.read(DB::Any)

          rows << row
        end
lgphp commented 7 years ago

now only 17 fields exception ,why?>

lgphp commented 7 years ago

End of file reached (IO::EOFError) 0x5f4eeb: MySql::ReadPacket at /opt/crystal/src/io.cr 581:27 0x5562e1: IO::ByteFormat::LittleEndian::decode<Int8:Class, MySql::ReadPacket>:Int8 at /opt/crystal/src/io/byte_format.cr 127:3

lgphp commented 7 years ago

o ,i see

bcardiff commented 7 years ago

@lgphp if you can share a schema and some sample data that is causing you troubles we can assist. Otherwise we are in a blind spot.

From your last message I guess you fixed it. If so, feel happy to share what it was and close the issue.

bcardiff commented 7 years ago

Closing. Please reopen if the issue was not solved.

codenoid commented 7 years ago
Unexpected EOF (Exception)
0x531cc7: *CallStack::unwind:Array(Pointer(Void)) at ??
0x65aa5c: read_byte! at /home/ayam/Documents/kafarahapp/educode/lib/mysql/src/mysql/read_packet.cr 40:18
0x65abde: read_int at /home/ayam/Documents/kafarahapp/educode/lib/mysql/src/mysql/read_packet.cr 65:5
0x6c42d2: read at /home/ayam/Documents/kafarahapp/educode/lib/mysql/src/mysql/packets.cr 13:7
0x6bafb9: read_packet at /home/ayam/Documents/kafarahapp/educode/lib/mysql/src/mysql/connection.cr 63:14
0x6bab01: initialize at /home/ayam/Documents/kafarahapp/educode/lib/mysql/src/mysql/connection.cr 22:19
0x6ba80f: new at /home/ayam/Documents/kafarahapp/educode/lib/mysql/src/mysql/connection.cr 4:3
0x6ba77d: build_connection at /home/ayam/Documents/kafarahapp/educode/lib/mysql/src/mysql/driver.cr 4:5
0x6c7880: build_resource at /home/ayam/Documents/kafarahapp/educode/lib/db/src/db/pool.cr 255:3
0x6c77f6: initialize at /home/ayam/Documents/kafarahapp/educode/lib/db/src/db/pool.cr 17:34
0x6c64ac: *DB::Pool(T)::new:initial_pool_size:max_pool_size:max_idle_pool_size:checkout_timeout:retry_attempts:retry_delay<Int32, Int32, Int32, Float64, Int32, Float64, &Proc(DB::Connection+)>:DB::Pool(DB::Connection+) at ??
0x6b6a42: initialize at /home/ayam/Documents/kafarahapp/educode/lib/db/src/db/database.cr 50:7
0x6b684d: new at /home/ayam/Documents/kafarahapp/educode/lib/db/src/db/database.cr 43:5
0x6af506: build_database at /home/ayam/Documents/kafarahapp/educode/lib/db/src/db.cr 140:5
0x6af4ee: build_database at /home/ayam/Documents/kafarahapp/educode/lib/db/src/db.cr 136:5
0x6af4d6: open at /home/ayam/Documents/kafarahapp/educode/lib/db/src/db.cr 104:5
0x4ebf16: __crystal_main at /home/ayam/Documents/kafarahapp/educode/src/educode.cr 16:1
0x4ffdf9: main at /opt/crystal/src/main.cr 12:15
0x7f80b6f04830: __libc_start_main at ??
0x4ea489: _start at ??
0x0: ??? at ??

https://github.com/crystal-lang/crystal-db/issues/58

lgphp commented 7 years ago

finally, i see , sorry , today reply this issue. occur the Exception that because crystal-mysql lib is not support any mysql filed type now, ex: mediumInt , you may be modify table , use some common filed type ,ex: Int instead of mediumInt.