code: async def _get_descriptions(self):
          
          self.fields = []
          self.converters = []
          use_unicode = self.connection.use_unicode
          conn_encoding = self.connection.encoding
          description = []
          for i in range(self.field_count):
              field = await self.connection._read_packet(
                  FieldDescriptorPacket)
              self.fields.append(field)
              description.append(field.description())
              field_type = field.type_code
              if use_unicode:
                  if field_type == FIELD_TYPE.JSON:
                      # When SELECT from JSON column: charset = binary
                      # When SELECT CAST(... AS JSON): charset = connection
                      # encoding
                      # This behavior is different from TEXT / BLOB.
                      # We should decode result by connection encoding
                      # regardless charsetnr.
                      # See https://github.com/PyMySQL/PyMySQL/issues/488
                      encoding = conn_encoding  # SELECT CAST(... AS JSON)
                  elif field_type in TEXT_TYPES:
                      if field.charsetnr == 63:  # binary
                          # TEXTs with charset=binary means BINARY types.
                          encoding = None
                      else:
                          encoding = conn_encoding
                  else:
                      # Integers, Dates and Times, and other basic data
                      # is encoded in ascii
                      encoding = 'ascii'
              else:
                  encoding = None
              converter = self.connection.decoders.get(field_type)
              if converter is through:
                  converter = None
              self.converters.append((encoding, converter))
  
          eof_packet = await self.connection._read_packet()
          assert eof_packet.is_eof_packet(), 'Protocol error, expecting EOF'
          self.description = tuple(description)
docs: Read a column descriptor packet for each column in the result.