)]}'
{
  "commit": "88147c430cc041a27d07e593ffea12b7aa586f7a",
  "tree": "62abce96a859169074db03d9699cc10b58ce2720",
  "parents": [
    "0f62c1a0e8b463b5b27035e11478e66d7daec69a"
  ],
  "author": {
    "name": "Zim",
    "email": "zezeozue@google.com",
    "time": "Thu May 07 10:16:08 2020 +0100"
  },
  "committer": {
    "name": "Zimuzo Ezeozue",
    "email": "zezeozue@google.com",
    "time": "Mon May 11 09:58:50 2020 +0000"
  },
  "message": "Fix \u0027ALTER RENAME TABLE\u0027 compat issue\n\nThis CL disables SQLite\u0027s new behavior in \"ALTER RENAME TABLE\"\nintroduced in version 3.25.0 (https://www.sqlite.org/changes.html).\nIn this new behavior, when renaming a table, SQLite would automatically\nupdate all the views and triggers referencing to it, which is nice if an\napp is always using 3.25 or later. However, in practice, almost all\nandroid apps have to support older android versions where this behavior\nis not supported, apps just can\u0027t rely on this feature.\n\nOther downsides of the new behavior (in the context of android ecosystem)\nincludes:\n- Because the new behavior would crash an app when a rename would cause\n  a dangling view or trigger *even when the app does have a fix-up step\n  after ALTER RENAME TABLE* in which case it\u0027d just work fine at the end,\n  it is very risky to enable the new behavior on all apps.\n\n- This new behavior also means existing upgrade steps (which may have\n  been introduced years ago) could suddenly fail, if the step is executed\n  in R. This means, if an app used an \"ALTER TABLE RENAME\" in the upgrade\n  step from ver 1 to ver 2 five years ago and never after, and almost all\n  users are already running ver 2 or newer, *if* there\u0027s still a user who\n  are on ver 1, upgrading the app to the latest version could suddenly\n  fail on R.\n\nApplications wishing to enable the new behavior can enable it at runtime\nwith the following call:\n\nSQLiteDatabase db \u003d ....; // open a DB\ndb.execPerConnectionSQL(\"PRAGMA legacy_alter_table \u003d 0;\", null);\n\nTest: atest SQLiteSecurityTest\nBug: 147928666\nChange-Id: I64546deebd3782ed685fcb46498bc487e0f8d5b6\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "113b49a639b5974fdd8816d589b9c6d930f3fd5a",
      "old_mode": 33188,
      "old_path": "README.version",
      "new_id": "e8aeabdfcdfc6074942503459c8119291da27be6",
      "new_mode": 33188,
      "new_path": "README.version"
    },
    {
      "type": "modify",
      "old_id": "0cccef154bfdeab50583db07923cc8dfc9d52b94",
      "old_mode": 33188,
      "old_path": "android/Android.bp",
      "new_id": "11b2ce6f6140ec971b89c5380f1e3b3a38921542",
      "new_mode": 33188,
      "new_path": "android/Android.bp"
    },
    {
      "type": "modify",
      "old_id": "ab90c89b6492889402675d62603695c72f2930b4",
      "old_mode": 33188,
      "old_path": "dist/Android.patch",
      "new_id": "cda5b559f258f8cbe1c233ce9632ed0d32312bd6",
      "new_mode": 33188,
      "new_path": "dist/Android.patch"
    },
    {
      "type": "modify",
      "old_id": "7c9e386e2a4d864d8e91046e90aad5e64a6c8475",
      "old_mode": 33188,
      "old_path": "dist/orig/sqlite3.c",
      "new_id": "163bbe9af2d5c2655fc0a8781c5e9b4f5d6d0239",
      "new_mode": 33188,
      "new_path": "dist/orig/sqlite3.c"
    },
    {
      "type": "modify",
      "old_id": "37e56c89e1a21cd089cca1236852fc6ffdea648a",
      "old_mode": 33188,
      "old_path": "dist/orig/sqlite3.h",
      "new_id": "2f9c25a8625a7545ac7fea59e3b45d21a3fe5db3",
      "new_mode": 33188,
      "new_path": "dist/orig/sqlite3.h"
    },
    {
      "type": "modify",
      "old_id": "d98218e47b69856d3fe78072fa1f1f9ff9ac7911",
      "old_mode": 33188,
      "old_path": "dist/sqlite3.c",
      "new_id": "ede258fc8e6429ace3a6d804d4765cdf630f9b8c",
      "new_mode": 33188,
      "new_path": "dist/sqlite3.c"
    },
    {
      "type": "modify",
      "old_id": "37e56c89e1a21cd089cca1236852fc6ffdea648a",
      "old_mode": 33188,
      "old_path": "dist/sqlite3.h",
      "new_id": "2f9c25a8625a7545ac7fea59e3b45d21a3fe5db3",
      "new_mode": 33188,
      "new_path": "dist/sqlite3.h"
    }
  ]
}
