class_docstr: Implementation based on description:
  https://mariadb.com/kb/en/library/1-connecting-connecting/#initial-handshake-packet
code: def read_params(self, buffer, num_params):
      if not num_params > 0:
          return
  
      # read null-map
      null_bytes = math.floor((num_params + 7) / 8)
      nulls = []
      for i in range(null_bytes):
          b, buffer = self._read_byte(buffer)
          for i in range(8):
              nulls.append(((1 << i) & b) != 0)
  
      # read send-type byte
      b, buffer = self._read_byte(buffer)
  
      types = []
      if b == 1:
          # read types
          for i in range(num_params):
              t, buffer = self._read_byte(buffer)
              s, buffer = self._read_byte(buffer)
              types.append(dict(type=t, signed=s))
  
      datumtypes = {
          TYPES.MYSQL_TYPE_VAR_STRING: "string<lenenc>",
          TYPES.MYSQL_TYPE_STRING: "string<lenenc>",
          TYPES.MYSQL_TYPE_VARCHAR: "string<lenenc>",
          TYPES.MYSQL_TYPE_TINY: "int<1>",
          TYPES.MYSQL_TYPE_SHORT: "int<2>",
          TYPES.MYSQL_TYPE_LONG: "int<4>",
          TYPES.MYSQL_TYPE_LONGLONG: "int<8>",
      }
  
      for i in range(num_params):
          if nulls[i]:
              self.parameters.append(None)
              continue
  
          datum_type = datumtypes.get(types[i]["type"])
          if datum_type is not None:
              x = Datum(datum_type)
              buffer = x.setFromBuff(buffer)
              value = x.value
              if isinstance(value, bytes):
                  value = value.decode()
  
              self.parameters.append(value)
          else:
              # NOTE at this moment all sends as strings and it works
              raise Exception(f"Unsupported type {types[i]['type']}")
  
file_path: mindsdb/mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/command_packet.py
imports: import struct
  import math
  from mindsdb.api.mysql.mysql_proxy.data_types.mysql_packet import Packet
  from mindsdb.api.mysql.mysql_proxy.data_types.mysql_datum import Datum
  from mindsdb.api.mysql.mysql_proxy.libs.constants.mysql import COMMANDS, getConstName, TYPES
label_desc: Use image node_id 2 for calling the CommandPacket obj's underlying member method code with example usage: obj.read_params(buffer, num_params) without return types