)]}'
{
  "commit": "32fbd3557bd707f73ce3c566228703faacdfdfd7",
  "tree": "a3ee9dc3236d19d349779deddb47726cdfc52359",
  "parents": [
    "f7b10db8e57aa001aee159b9ce6479df367c1afd"
  ],
  "author": {
    "name": "ZEAL",
    "email": "zealli@gmail.com",
    "time": "Thu Apr 11 21:10:26 2024 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Apr 11 21:10:26 2024 +0800"
  },
  "message": "Fix unexpected \u0027decode\u0027 AttributeError when MySQLdb module is mapped by PyMySQL (#336)\n\n* Skip if MySQLdb module is mapped by PyMySQL\r\n\r\nIn some use cases, `pymysql.install_as_MySQLdb()` will be used to initialize a \u0027fake\u0027 MySQLdb module,\r\nwhich is actually mapped to pymysql module.\r\nThen the sw_mysqlclient plugin will change the data type of `connection.db` from bytes into str, \r\ncause the `AttributeError: \u0027str\u0027 object has no attribute \u0027decode\u0027` exception in sw_pymysql.py line 45, \r\nwhich regard it as bytes.\r\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8f7a0c5361c551b42cbcf63d578600f746f720a1",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "962083a3e1e9f0ec8f5946d49cca3980e868666b",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "9adbc5b34426ce93c589da303a0af9c10c93bd0f",
      "old_mode": 33188,
      "old_path": "skywalking/plugins/sw_mysqlclient.py",
      "new_id": "bf86ba82e6db08b71bbdb1786b07f7a7a91a9892",
      "new_mode": 33188,
      "new_path": "skywalking/plugins/sw_mysqlclient.py"
    }
  ]
}
