Title: [280127] trunk/Websites/perf.webkit.org
- Revision
- 280127
- Author
- [email protected]
- Date
- 2021-07-21 04:35:17 -0700 (Wed, 21 Jul 2021)
Log Message
Use bigint for 'commit_order' field in 'commits' table to support larger range.
https://bugs.webkit.org/show_bug.cgi?id=228133
Reviewed by Ryosuke Niwa.
'integer' in postgres has range from -2147483648 to +2147483647 which is not big enough.
Use 'bigint' to support wider range (-9223372036854775808 to 9223372036854775807).
SQL query for migration:
`ALTER TABLE commits ALTER commit_order TYPE bigint;`
* init-database.sql: Update 'integer' to 'bigint' for 'commit_order'.
* migrate-database.sql: Added migration SQL for this change.
* server-tests/api-report-commits-tests.js: Add a unit test.
Modified Paths
Diff
Modified: trunk/Websites/perf.webkit.org/ChangeLog (280126 => 280127)
--- trunk/Websites/perf.webkit.org/ChangeLog 2021-07-21 05:55:05 UTC (rev 280126)
+++ trunk/Websites/perf.webkit.org/ChangeLog 2021-07-21 11:35:17 UTC (rev 280127)
@@ -1,3 +1,19 @@
+2021-07-20 Dewei Zhu <[email protected]>
+
+ Use bigint for 'commit_order' field in 'commits' table to support larger range.
+ https://bugs.webkit.org/show_bug.cgi?id=228133
+
+ Reviewed by Ryosuke Niwa.
+
+ 'integer' in postgres has range from -2147483648 to +2147483647 which is not big enough.
+ Use 'bigint' to support wider range (-9223372036854775808 to 9223372036854775807).
+ SQL query for migration:
+ `ALTER TABLE commits ALTER commit_order TYPE bigint;`
+
+ * init-database.sql: Update 'integer' to 'bigint' for 'commit_order'.
+ * migrate-database.sql: Added migration SQL for this change.
+ * server-tests/api-report-commits-tests.js: Add a unit test.
+
2021-05-03 Dewei Zhu <[email protected]>
[perf dashboard] Add sequential mode for perf dashboard A/B testing.
Modified: trunk/Websites/perf.webkit.org/init-database.sql (280126 => 280127)
--- trunk/Websites/perf.webkit.org/init-database.sql 2021-07-21 05:55:05 UTC (rev 280126)
+++ trunk/Websites/perf.webkit.org/init-database.sql 2021-07-21 11:35:17 UTC (rev 280127)
@@ -106,7 +106,7 @@
commit_revision_identifier varchar(64) DEFAULT NULL,
commit_previous_commit integer REFERENCES commits ON DELETE CASCADE,
commit_time timestamp,
- commit_order integer,
+ commit_order bigint,
commit_committer integer REFERENCES committers ON DELETE CASCADE,
commit_message text,
commit_reported boolean NOT NULL DEFAULT FALSE,
Modified: trunk/Websites/perf.webkit.org/migrate-database.sql (280126 => 280127)
--- trunk/Websites/perf.webkit.org/migrate-database.sql 2021-07-21 05:55:05 UTC (rev 280126)
+++ trunk/Websites/perf.webkit.org/migrate-database.sql 2021-07-21 11:35:17 UTC (rev 280127)
@@ -13,6 +13,10 @@
ALTER TABLE commits DROP CONSTRAINT IF EXISTS commit_string_identifier_in_repository_must_be_unique;
ALTER TABLE commits ADD CONSTRAINT commit_string_identifier_in_repository_must_be_unique UNIQUE(commit_repository, commit_revision_identifier);
+IF EXISTS (SELECT NULL FROM information_schema.columns WHERE TABLE_NAME = 'commits' AND COLUMN_NAME = 'commit_order' AND DATA_TYPE = 'integer') THEN
+ ALTER TABLE commits ALTER commit_order TYPE bigint;
+END IF;
+
CREATE TABLE IF NOT EXISTS platform_groups (
platformgroup_id serial PRIMARY KEY,
platformgroup_name varchar(64) NOT NULL,
Modified: trunk/Websites/perf.webkit.org/server-tests/api-report-commits-tests.js (280126 => 280127)
--- trunk/Websites/perf.webkit.org/server-tests/api-report-commits-tests.js 2021-07-21 05:55:05 UTC (rev 280126)
+++ trunk/Websites/perf.webkit.org/server-tests/api-report-commits-tests.js 2021-07-21 11:35:17 UTC (rev 280127)
@@ -812,6 +812,27 @@
});
});
+ const commitWithHugeOrder = {
+ "workerName": "someWorker",
+ "workerPassword": "somePassword",
+ "commits": [
+ {
+ "repository": "OSX",
+ "revision": "Sierra16D32",
+ "order": 2147483648
+ }
+ ]
+ }
+
+ it("should accept interting one commit with a huge commit order", async () => {
+ await addWorkerForReport(commitWithHugeOrder);
+ const response = await TestServer.remoteAPI().postJSON('/api/report-commits/', commitWithHugeOrder);
+ assert.strictEqual(response['status'], 'OK');
+ const commits = await TestServer.database().selectAll('commits');
+ assert.strictEqual(commits.length, 1);
+ assert.strictEqual(parseInt(commits[0].order), 2147483648);
+ });
+
const systemVersionCommitAndOwnedCommitWithTimestamp = {
"workerName": "someWorker",
"workerPassword": "somePassword",
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes