{"action":"created","comment":{"url":"https://api.github.com/repos/timescale/timescaledb/pulls/comments/123505200","pull_request_review_id":45683793,"id":123505200,"diff_hunk":"@@ -49,66 +43,62 @@ prepare_plan(const char *src, int nargs, Oid *argtypes)\n \t\treturn plan;\t\t\t\t\t\t\t\\\n \t}\n \n-/*\n- * Retrieving chunks:\n- *\n- * Locked chunk retrieval has to occur on every row. So we have a fast and slowpath.\n- * The fastpath retrieves and locks the chunk only if it already exists locally. The\n- * fastpath is faster since it does not call a plpgsql function but calls sql directly.\n- * This was found to make a performance difference in tests.\n- *\n- * The slowpath calls  get_or_create_chunk(), and is called only if the fastpath returned no rows.\n- *\n- */\n-#define CHUNK_QUERY_ARGS (Oid[]) {INT4OID, INT8OID}\n-#define CHUNK_QUERY \"SELECT * \\\n-\t\t\t\tFROM _timescaledb_internal.get_or_create_chunk($1, $2)\"\n-\n-/* plan for getting a chunk via get_or_create_chunk(). */\n-DEFINE_PLAN(get_chunk_plan, CHUNK_QUERY, 2, CHUNK_QUERY_ARGS)\n+#define INT8ARRAYOID 1016\n+#define CHUNK_CREATE_ARGS (Oid[]) {INT4ARRAYOID, INT8ARRAYOID}\n+#define CHUNK_CREATE \"SELECT * FROM _timescaledb_internal.chunk_create($1, $2)\"\n+\n+/* plan for creating a chunk via create_chunk(). */\n+DEFINE_PLAN(create_chunk_plan, CHUNK_CREATE, 2, CHUNK_CREATE_ARGS)\n \n static HeapTuple\n-chunk_tuple_create_spi_connected(int32 partition_id, int64 timepoint, TupleDesc *desc, SPIPlanPtr plan)\n+chunk_tuple_create_spi_connected(Hyperspace *hs, Point *p, SPIPlanPtr plan)\n {\n-\t/* the fastpath was n/a or returned 0 rows. */\n-\tint\t\t\tret;\n-\tDatum\t\targs[3] = {Int32GetDatum(partition_id), Int64GetDatum(timepoint)};\n+\tint\t\t\ti,\n+\t\t\t\tret;\n \tHeapTuple\ttuple;\n+\tDatum\t\tdimension_ids[HYPERSPACE_NUM_DIMENSIONS(hs)];\n+\tDatum\t\tdimension_values[HYPERSPACE_NUM_DIMENSIONS(hs)];\n+\tDatum\t\targs[2];\n+\n+\tfor (i = 0; i < HYPERSPACE_NUM_DIMENSIONS(hs); i++)\n+\t{\n+\t\tdimension_ids[i] = Int32GetDatum(hs->dimensions[i].fd.id);\n+\t\tdimension_values[i] = Int64GetDatum(p->coordinates[i]);\n+\t}\n+\n+\targs[0] = PointerGetDatum(construct_array(dimension_ids, HYPERSPACE_NUM_DIMENSIONS(hs), INT4OID, 4, true, 'i'));\n+\targs[1] = PointerGetDatum(construct_array(dimension_values, HYPERSPACE_NUM_DIMENSIONS(hs), INT8OID, 8, true, 'd'));\n \n-\tret = SPI_execute_plan(plan, args, NULL, false, 2);\n+\tret = SPI_execute_plan(plan, args, NULL, false, 4);\n \n \tif (ret <= 0)\n-\t{\n \t\telog(ERROR, \"Got an SPI error %d\", ret);\n-\t}\n \n \tif (SPI_processed != 1)\n-\t{\n \t\telog(ERROR, \"Got not 1 row but %lu\", SPI_processed);\n-\t}\n-\n-\tif (desc != NULL)\n-\t\t*desc = SPI_tuptable->tupdesc;\n \n \ttuple = SPI_tuptable->vals[0];\n \n \treturn tuple;\n }\n \n Chunk *\n-chunk_insert_new(int32 partition_id, int64 timepoint)\n+spi_chunk_create(Hyperspace *hs, Point *p)\n {\n \tHeapTuple\ttuple;\n-\tTupleDesc\tdesc;\n \tChunk\t   *chunk;\n-\tMemoryContext top = CurrentMemoryContext;\n-\tSPIPlanPtr\tplan = get_chunk_plan();\n+\tMemoryContext old,\n+\t\t\t\ttop = CurrentMemoryContext;","path":"src/metadata_queries.c","position":104,"original_position":104,"commit_id":"892fd8bcf737b372db612fc5333ab5d2a43662d7","original_commit_id":"892fd8bcf737b372db612fc5333ab5d2a43662d7","user":{"login":"olofr","id":5636564,"avatar_url":"https://avatars1.githubusercontent.com/u/5636564?v=3","gravatar_id":"","url":"https://api.github.com/users/olofr","html_url":"https://github.com/olofr","followers_url":"https://api.github.com/users/olofr/followers","following_url":"https://api.github.com/users/olofr/following{/other_user}","gists_url":"https://api.github.com/users/olofr/gists{/gist_id}","starred_url":"https://api.github.com/users/olofr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olofr/subscriptions","organizations_url":"https://api.github.com/users/olofr/orgs","repos_url":"https://api.github.com/users/olofr/repos","events_url":"https://api.github.com/users/olofr/events{/privacy}","received_events_url":"https://api.github.com/users/olofr/received_events","type":"User","site_admin":false},"body":"indentation\r\n","created_at":"2017-06-22T13:11:20Z","updated_at":"2017-06-22T13:23:27Z","html_url":"https://github.com/timescale/timescaledb/pull/93#discussion_r123505200","pull_request_url":"https://api.github.com/repos/timescale/timescaledb/pulls/93","_links":{"self":{"href":"https://api.github.com/repos/timescale/timescaledb/pulls/comments/123505200"},"html":{"href":"https://github.com/timescale/timescaledb/pull/93#discussion_r123505200"},"pull_request":{"href":"https://api.github.com/repos/timescale/timescaledb/pulls/93"}}},"pull_request":{"url":"https://api.github.com/repos/timescale/timescaledb/pulls/93","id":126957034,"html_url":"https://github.com/timescale/timescaledb/pull/93","diff_url":"https://github.com/timescale/timescaledb/pull/93.diff","patch_url":"https://github.com/timescale/timescaledb/pull/93.patch","issue_url":"https://api.github.com/repos/timescale/timescaledb/issues/93","number":93,"state":"open","locked":false,"title":"Refactor to support any number of partitioning dimensions","user":{"login":"erimatnor","id":819732,"avatar_url":"https://avatars0.githubusercontent.com/u/819732?v=3","gravatar_id":"","url":"https://api.github.com/users/erimatnor","html_url":"https://github.com/erimatnor","followers_url":"https://api.github.com/users/erimatnor/followers","following_url":"https://api.github.com/users/erimatnor/following{/other_user}","gists_url":"https://api.github.com/users/erimatnor/gists{/gist_id}","starred_url":"https://api.github.com/users/erimatnor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erimatnor/subscriptions","organizations_url":"https://api.github.com/users/erimatnor/orgs","repos_url":"https://api.github.com/users/erimatnor/repos","events_url":"https://api.github.com/users/erimatnor/events{/privacy}","received_events_url":"https://api.github.com/users/erimatnor/received_events","type":"User","site_admin":false},"body":"This is a major refactoring to generalize the partitioning scheme in TimescaleDB to support any number of partitioning dimensions (as opposed to just two; time and space). This also unifies the way we treat time-like and space-like partitioning dimensions, leading to cleaner code and a simpler metadata schema.\r\n\r\nNote that the user-facing API remains the same, which means it is still only possible to partition tables in two dimensions, although the inner workings of the database supports more dimensions. Still,  the API can be extended in the future to expose the additional functionality.\r\n\r\nSince this refactoring involves schema changes for the internal metadata it is not compatible with previous releases. However, the idea is that this more general schema will allow us to support version upgrades from now on.","created_at":"2017-06-22T10:17:56Z","updated_at":"2017-06-22T13:23:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b820495bab3202733c5561f05239b3a40cb9690d","assignee":null,"assignees":[],"requested_reviewers":[{"login":"cevian","id":112245,"avatar_url":"https://avatars3.githubusercontent.com/u/112245?v=3","gravatar_id":"","url":"https://api.github.com/users/cevian","html_url":"https://github.com/cevian","followers_url":"https://api.github.com/users/cevian/followers","following_url":"https://api.github.com/users/cevian/following{/other_user}","gists_url":"https://api.github.com/users/cevian/gists{/gist_id}","starred_url":"https://api.github.com/users/cevian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cevian/subscriptions","organizations_url":"https://api.github.com/users/cevian/orgs","repos_url":"https://api.github.com/users/cevian/repos","events_url":"https://api.github.com/users/cevian/events{/privacy}","received_events_url":"https://api.github.com/users/cevian/received_events","type":"User","site_admin":false},{"login":"mfreed","id":205086,"avatar_url":"https://avatars0.githubusercontent.com/u/205086?v=3","gravatar_id":"","url":"https://api.github.com/users/mfreed","html_url":"https://github.com/mfreed","followers_url":"https://api.github.com/users/mfreed/followers","following_url":"https://api.github.com/users/mfreed/following{/other_user}","gists_url":"https://api.github.com/users/mfreed/gists{/gist_id}","starred_url":"https://api.github.com/users/mfreed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mfreed/subscriptions","organizations_url":"https://api.github.com/users/mfreed/orgs","repos_url":"https://api.github.com/users/mfreed/repos","events_url":"https://api.github.com/users/mfreed/events{/privacy}","received_events_url":"https://api.github.com/users/mfreed/received_events","type":"User","site_admin":false},{"login":"akulkarni","id":675862,"avatar_url":"https://avatars0.githubusercontent.com/u/675862?v=3","gravatar_id":"","url":"https://api.github.com/users/akulkarni","html_url":"https://github.com/akulkarni","followers_url":"https://api.github.com/users/akulkarni/followers","following_url":"https://api.github.com/users/akulkarni/following{/other_user}","gists_url":"https://api.github.com/users/akulkarni/gists{/gist_id}","starred_url":"https://api.github.com/users/akulkarni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akulkarni/subscriptions","organizations_url":"https://api.github.com/users/akulkarni/orgs","repos_url":"https://api.github.com/users/akulkarni/repos","events_url":"https://api.github.com/users/akulkarni/events{/privacy}","received_events_url":"https://api.github.com/users/akulkarni/received_events","type":"User","site_admin":false},{"login":"RobAtticus","id":1501309,"avatar_url":"https://avatars2.githubusercontent.com/u/1501309?v=3","gravatar_id":"","url":"https://api.github.com/users/RobAtticus","html_url":"https://github.com/RobAtticus","followers_url":"https://api.github.com/users/RobAtticus/followers","following_url":"https://api.github.com/users/RobAtticus/following{/other_user}","gists_url":"https://api.github.com/users/RobAtticus/gists{/gist_id}","starred_url":"https://api.github.com/users/RobAtticus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RobAtticus/subscriptions","organizations_url":"https://api.github.com/users/RobAtticus/orgs","repos_url":"https://api.github.com/users/RobAtticus/repos","events_url":"https://api.github.com/users/RobAtticus/events{/privacy}","received_events_url":"https://api.github.com/users/RobAtticus/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/timescale/timescaledb/pulls/93/commits","review_comments_url":"https://api.github.com/repos/timescale/timescaledb/pulls/93/comments","review_comment_url":"https://api.github.com/repos/timescale/timescaledb/pulls/comments{/number}","comments_url":"https://api.github.com/repos/timescale/timescaledb/issues/93/comments","statuses_url":"https://api.github.com/repos/timescale/timescaledb/statuses/892fd8bcf737b372db612fc5333ab5d2a43662d7","head":{"label":"timescale:n-dimension-refactor","ref":"n-dimension-refactor","sha":"892fd8bcf737b372db612fc5333ab5d2a43662d7","user":{"login":"timescale","id":8986001,"avatar_url":"https://avatars0.githubusercontent.com/u/8986001?v=3","gravatar_id":"","url":"https://api.github.com/users/timescale","html_url":"https://github.com/timescale","followers_url":"https://api.github.com/users/timescale/followers","following_url":"https://api.github.com/users/timescale/following{/other_user}","gists_url":"https://api.github.com/users/timescale/gists{/gist_id}","starred_url":"https://api.github.com/users/timescale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timescale/subscriptions","organizations_url":"https://api.github.com/users/timescale/orgs","repos_url":"https://api.github.com/users/timescale/repos","events_url":"https://api.github.com/users/timescale/events{/privacy}","received_events_url":"https://api.github.com/users/timescale/received_events","type":"Organization","site_admin":false},"repo":{"id":84240850,"name":"timescaledb","full_name":"timescale/timescaledb","owner":{"login":"timescale","id":8986001,"avatar_url":"https://avatars0.githubusercontent.com/u/8986001?v=3","gravatar_id":"","url":"https://api.github.com/users/timescale","html_url":"https://github.com/timescale","followers_url":"https://api.github.com/users/timescale/followers","following_url":"https://api.github.com/users/timescale/following{/other_user}","gists_url":"https://api.github.com/users/timescale/gists{/gist_id}","starred_url":"https://api.github.com/users/timescale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timescale/subscriptions","organizations_url":"https://api.github.com/users/timescale/orgs","repos_url":"https://api.github.com/users/timescale/repos","events_url":"https://api.github.com/users/timescale/events{/privacy}","received_events_url":"https://api.github.com/users/timescale/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/timescale/timescaledb","description":"An open-source time-series database optimized for fast ingest and complex queries.  Engineered up from PostgreSQL, packaged as an extension.","fork":false,"url":"https://api.github.com/repos/timescale/timescaledb","forks_url":"https://api.github.com/repos/timescale/timescaledb/forks","keys_url":"https://api.github.com/repos/timescale/timescaledb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/timescale/timescaledb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/timescale/timescaledb/teams","hooks_url":"https://api.github.com/repos/timescale/timescaledb/hooks","issue_events_url":"https://api.github.com/repos/timescale/timescaledb/issues/events{/number}","events_url":"https://api.github.com/repos/timescale/timescaledb/events","assignees_url":"https://api.github.com/repos/timescale/timescaledb/assignees{/user}","branches_url":"https://api.github.com/repos/timescale/timescaledb/branches{/branch}","tags_url":"https://api.github.com/repos/timescale/timescaledb/tags","blobs_url":"https://api.github.com/repos/timescale/timescaledb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/timescale/timescaledb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/timescale/timescaledb/git/refs{/sha}","trees_url":"https://api.github.com/repos/timescale/timescaledb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/timescale/timescaledb/statuses/{sha}","languages_url":"https://api.github.com/repos/timescale/timescaledb/languages","stargazers_url":"https://api.github.com/repos/timescale/timescaledb/stargazers","contributors_url":"https://api.github.com/repos/timescale/timescaledb/contributors","subscribers_url":"https://api.github.com/repos/timescale/timescaledb/subscribers","subscription_url":"https://api.github.com/repos/timescale/timescaledb/subscription","commits_url":"https://api.github.com/repos/timescale/timescaledb/commits{/sha}","git_commits_url":"https://api.github.com/repos/timescale/timescaledb/git/commits{/sha}","comments_url":"https://api.github.com/repos/timescale/timescaledb/comments{/number}","issue_comment_url":"https://api.github.com/repos/timescale/timescaledb/issues/comments{/number}","contents_url":"https://api.github.com/repos/timescale/timescaledb/contents/{+path}","compare_url":"https://api.github.com/repos/timescale/timescaledb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/timescale/timescaledb/merges","archive_url":"https://api.github.com/repos/timescale/timescaledb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/timescale/timescaledb/downloads","issues_url":"https://api.github.com/repos/timescale/timescaledb/issues{/number}","pulls_url":"https://api.github.com/repos/timescale/timescaledb/pulls{/number}","milestones_url":"https://api.github.com/repos/timescale/timescaledb/milestones{/number}","notifications_url":"https://api.github.com/repos/timescale/timescaledb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/timescale/timescaledb/labels{/name}","releases_url":"https://api.github.com/repos/timescale/timescaledb/releases{/id}","deployments_url":"https://api.github.com/repos/timescale/timescaledb/deployments","created_at":"2017-03-07T20:03:41Z","updated_at":"2017-06-22T07:54:13Z","pushed_at":"2017-06-22T10:23:33Z","git_url":"git://github.com/timescale/timescaledb.git","ssh_url":"git@github.com:timescale/timescaledb.git","clone_url":"https://github.com/timescale/timescaledb.git","svn_url":"https://github.com/timescale/timescaledb","homepage":"http://www.timescale.com/","size":1139,"stargazers_count":1354,"watchers_count":1354,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":66,"mirror_url":null,"open_issues_count":17,"forks":66,"open_issues":17,"watchers":1354,"default_branch":"master"}},"base":{"label":"timescale:master","ref":"master","sha":"216afe6ad72e6715a1f52f2a4dbf8b36044a3082","user":{"login":"timescale","id":8986001,"avatar_url":"https://avatars0.githubusercontent.com/u/8986001?v=3","gravatar_id":"","url":"https://api.github.com/users/timescale","html_url":"https://github.com/timescale","followers_url":"https://api.github.com/users/timescale/followers","following_url":"https://api.github.com/users/timescale/following{/other_user}","gists_url":"https://api.github.com/users/timescale/gists{/gist_id}","starred_url":"https://api.github.com/users/timescale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timescale/subscriptions","organizations_url":"https://api.github.com/users/timescale/orgs","repos_url":"https://api.github.com/users/timescale/repos","events_url":"https://api.github.com/users/timescale/events{/privacy}","received_events_url":"https://api.github.com/users/timescale/received_events","type":"Organization","site_admin":false},"repo":{"id":84240850,"name":"timescaledb","full_name":"timescale/timescaledb","owner":{"login":"timescale","id":8986001,"avatar_url":"https://avatars0.githubusercontent.com/u/8986001?v=3","gravatar_id":"","url":"https://api.github.com/users/timescale","html_url":"https://github.com/timescale","followers_url":"https://api.github.com/users/timescale/followers","following_url":"https://api.github.com/users/timescale/following{/other_user}","gists_url":"https://api.github.com/users/timescale/gists{/gist_id}","starred_url":"https://api.github.com/users/timescale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timescale/subscriptions","organizations_url":"https://api.github.com/users/timescale/orgs","repos_url":"https://api.github.com/users/timescale/repos","events_url":"https://api.github.com/users/timescale/events{/privacy}","received_events_url":"https://api.github.com/users/timescale/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/timescale/timescaledb","description":"An open-source time-series database optimized for fast ingest and complex queries.  Engineered up from PostgreSQL, packaged as an extension.","fork":false,"url":"https://api.github.com/repos/timescale/timescaledb","forks_url":"https://api.github.com/repos/timescale/timescaledb/forks","keys_url":"https://api.github.com/repos/timescale/timescaledb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/timescale/timescaledb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/timescale/timescaledb/teams","hooks_url":"https://api.github.com/repos/timescale/timescaledb/hooks","issue_events_url":"https://api.github.com/repos/timescale/timescaledb/issues/events{/number}","events_url":"https://api.github.com/repos/timescale/timescaledb/events","assignees_url":"https://api.github.com/repos/timescale/timescaledb/assignees{/user}","branches_url":"https://api.github.com/repos/timescale/timescaledb/branches{/branch}","tags_url":"https://api.github.com/repos/timescale/timescaledb/tags","blobs_url":"https://api.github.com/repos/timescale/timescaledb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/timescale/timescaledb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/timescale/timescaledb/git/refs{/sha}","trees_url":"https://api.github.com/repos/timescale/timescaledb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/timescale/timescaledb/statuses/{sha}","languages_url":"https://api.github.com/repos/timescale/timescaledb/languages","stargazers_url":"https://api.github.com/repos/timescale/timescaledb/stargazers","contributors_url":"https://api.github.com/repos/timescale/timescaledb/contributors","subscribers_url":"https://api.github.com/repos/timescale/timescaledb/subscribers","subscription_url":"https://api.github.com/repos/timescale/timescaledb/subscription","commits_url":"https://api.github.com/repos/timescale/timescaledb/commits{/sha}","git_commits_url":"https://api.github.com/repos/timescale/timescaledb/git/commits{/sha}","comments_url":"https://api.github.com/repos/timescale/timescaledb/comments{/number}","issue_comment_url":"https://api.github.com/repos/timescale/timescaledb/issues/comments{/number}","contents_url":"https://api.github.com/repos/timescale/timescaledb/contents/{+path}","compare_url":"https://api.github.com/repos/timescale/timescaledb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/timescale/timescaledb/merges","archive_url":"https://api.github.com/repos/timescale/timescaledb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/timescale/timescaledb/downloads","issues_url":"https://api.github.com/repos/timescale/timescaledb/issues{/number}","pulls_url":"https://api.github.com/repos/timescale/timescaledb/pulls{/number}","milestones_url":"https://api.github.com/repos/timescale/timescaledb/milestones{/number}","notifications_url":"https://api.github.com/repos/timescale/timescaledb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/timescale/timescaledb/labels{/name}","releases_url":"https://api.github.com/repos/timescale/timescaledb/releases{/id}","deployments_url":"https://api.github.com/repos/timescale/timescaledb/deployments","created_at":"2017-03-07T20:03:41Z","updated_at":"2017-06-22T07:54:13Z","pushed_at":"2017-06-22T10:23:33Z","git_url":"git://github.com/timescale/timescaledb.git","ssh_url":"git@github.com:timescale/timescaledb.git","clone_url":"https://github.com/timescale/timescaledb.git","svn_url":"https://github.com/timescale/timescaledb","homepage":"http://www.timescale.com/","size":1139,"stargazers_count":1354,"watchers_count":1354,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":66,"mirror_url":null,"open_issues_count":17,"forks":66,"open_issues":17,"watchers":1354,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/timescale/timescaledb/pulls/93"},"html":{"href":"https://github.com/timescale/timescaledb/pull/93"},"issue":{"href":"https://api.github.com/repos/timescale/timescaledb/issues/93"},"comments":{"href":"https://api.github.com/repos/timescale/timescaledb/issues/93/comments"},"review_comments":{"href":"https://api.github.com/repos/timescale/timescaledb/pulls/93/comments"},"review_comment":{"href":"https://api.github.com/repos/timescale/timescaledb/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/timescale/timescaledb/pulls/93/commits"},"statuses":{"href":"https://api.github.com/repos/timescale/timescaledb/statuses/892fd8bcf737b372db612fc5333ab5d2a43662d7"}}}}
{"actor":{"display_login":"olofr"}}