class Mysql::Protocol::ExecutePacket
Execute packet
Public Class Methods
null_bitmap(values)
click to toggle source
make null bitmap
If values is [1, nil, 2, 3, nil] then returns “x12”(0b10010).
# File lib/vendor/mysql/protocol.rb, line 707 def self.null_bitmap(values) bitmap = values.enum_for(:each_slice,8).map do |vals| vals.reverse.inject(0){|b, v|(b << 1 | (v ? 0 : 1))} end return bitmap.pack("C*") end
serialize(statement_id, cursor_type, values)
click to toggle source
# File lib/vendor/mysql/protocol.rb, line 693 def self.serialize(statement_id, cursor_type, values) nbm = null_bitmap values netvalues = "" types = values.map do |v| t, n = Protocol.value2net v netvalues.concat n if v t end [Mysql::COM_STMT_EXECUTE, statement_id, cursor_type, 1, nbm, 1, types.pack("v*"), netvalues].pack("CVCVa*Ca*a*") end