mirror of
https://github.com/modrinth/code.git
synced 2026-08-25 00:55:25 +00:00
fix: global traces QA notes (#6977)
* updated at cols + search by path * speed up scanning * migration does not auto-set updated_at * merge migrations
This commit is contained in:
+7
-4
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"db_name": "PostgreSQL",
|
"db_name": "PostgreSQL",
|
||||||
"query": "\n WITH ranked_local_traces AS (\n SELECT\n didws.key AS detail_key,\n didws.id AS detail_id,\n didws.issue_id,\n dri.issue_type,\n m.id AS project_id,\n m.slug AS project_slug,\n m.name AS project_name,\n v.id AS version_id,\n v.version_number,\n f.id AS file_id,\n f.filename AS file_name,\n didws.jar,\n didws.file_path,\n didws.severity,\n COALESCE(didv.verdict, 'pending'::delphi_report_issue_status)\n AS local_status,\n didws.status AS effective_status,\n ROW_NUMBER() OVER (\n PARTITION BY didws.key\n ORDER BY didws.id\n ) AS row_num\n FROM delphi_issue_details_with_statuses didws\n INNER JOIN delphi_report_issues dri ON dri.id = didws.issue_id\n INNER JOIN delphi_reports dr ON dr.id = dri.report_id\n INNER JOIN files f ON f.id = dr.file_id\n INNER JOIN versions v ON v.id = f.version_id\n INNER JOIN mods m ON m.id = v.mod_id\n LEFT JOIN delphi_issue_detail_verdicts didv\n ON didv.project_id = didws.project_id\n AND didv.detail_key = didws.key\n WHERE\n didws.key = ANY($1::text[])\n AND dri.issue_type != '__dummy'\n )\n SELECT\n detail_key AS \"detail_key!\",\n detail_id AS \"detail_id!: DelphiReportIssueDetailsId\",\n issue_id AS \"issue_id!: DelphiReportIssueId\",\n issue_type,\n project_id AS \"project_id!: DBProjectId\",\n project_slug AS \"project_slug?\",\n project_name AS \"project_name!\",\n version_id AS \"version_id!: DBVersionId\",\n v.version_number,\n file_id AS \"file_id!: DBFileId\",\n file_name AS \"file_name!\",\n jar AS \"jar?\",\n file_path AS \"file_path!\",\n severity AS \"severity!: DelphiSeverity\",\n local_status AS \"local_status!: DelphiStatus\",\n effective_status AS \"effective_status!: DelphiStatus\"\n FROM ranked_local_traces v\n WHERE row_num <= $2\n ORDER BY detail_key, detail_id\n ",
|
"query": "\n WITH ranked_local_traces AS (\n SELECT\n didws.key AS detail_key,\n didws.id AS detail_id,\n didws.issue_id,\n dri.issue_type,\n m.id AS project_id,\n m.slug AS project_slug,\n m.name AS project_name,\n v.id AS version_id,\n v.version_number,\n f.id AS file_id,\n f.filename AS file_name,\n didws.jar,\n didws.file_path,\n didws.severity,\n COALESCE(didv.verdict, 'pending'::delphi_report_issue_status)\n AS local_status,\n didws.status AS effective_status,\n ROW_NUMBER() OVER (\n PARTITION BY didws.key\n ORDER BY didws.id\n ) AS row_num\n FROM delphi_issue_details_with_statuses didws\n INNER JOIN delphi_report_issues dri ON dri.id = didws.issue_id\n INNER JOIN delphi_reports dr ON dr.id = dri.report_id\n INNER JOIN files f ON f.id = dr.file_id\n INNER JOIN versions v ON v.id = f.version_id\n INNER JOIN mods m ON m.id = v.mod_id\n LEFT JOIN delphi_issue_detail_verdicts didv\n ON didv.project_id = didws.project_id\n AND didv.detail_key = didws.key\n WHERE\n didws.key = ANY($1::text[])\n AND dri.issue_type != '__dummy'\n AND (\n $3::text IS NULL\n OR didws.key ILIKE '%' || $3 || '%'\n OR didws.file_path ILIKE '%' || $3 || '%'\n )\n )\n SELECT\n detail_key AS \"detail_key!\",\n detail_id AS \"detail_id!: DelphiReportIssueDetailsId\",\n issue_id AS \"issue_id!: DelphiReportIssueId\",\n issue_type,\n project_id AS \"project_id!: DBProjectId\",\n project_slug AS \"project_slug?\",\n project_name AS \"project_name!\",\n version_id AS \"version_id!: DBVersionId\",\n v.version_number,\n file_id AS \"file_id!: DBFileId\",\n file_name AS \"file_name!\",\n jar AS \"jar?\",\n file_path AS \"file_path!\",\n severity AS \"severity!: DelphiSeverity\",\n local_status AS \"local_status!: DelphiStatus\",\n effective_status AS \"effective_status!: DelphiStatus\"\n FROM ranked_local_traces v\n WHERE row_num <= $2\n ORDER BY detail_key, detail_id\n ",
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
{
|
{
|
||||||
@@ -76,10 +76,12 @@
|
|||||||
"name": "delphi_severity",
|
"name": "delphi_severity",
|
||||||
"kind": {
|
"kind": {
|
||||||
"Enum": [
|
"Enum": [
|
||||||
|
"hidden",
|
||||||
"low",
|
"low",
|
||||||
"medium",
|
"medium",
|
||||||
"high",
|
"high",
|
||||||
"severe"
|
"severe",
|
||||||
|
"malware"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -121,7 +123,8 @@
|
|||||||
"parameters": {
|
"parameters": {
|
||||||
"Left": [
|
"Left": [
|
||||||
"TextArray",
|
"TextArray",
|
||||||
"Int8"
|
"Int8",
|
||||||
|
"Text"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"nullable": [
|
"nullable": [
|
||||||
@@ -143,5 +146,5 @@
|
|||||||
true
|
true
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"hash": "87d30e8802ebe69858141d0d918cafb5286f984cfe55ad1a7ac2219ec50539a4"
|
"hash": "1551b022217df05490a01e715b3584d26550d01a1917d1af64fe236d63dd5005"
|
||||||
}
|
}
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"db_name": "PostgreSQL",
|
"db_name": "PostgreSQL",
|
||||||
"query": "\n SELECT\n dgdv.detail_key,\n dgdv.verdict AS \"verdict!: DelphiStatus\",\n COUNT(dri.id) AS \"local_trace_count!\"\n FROM delphi_global_detail_verdicts dgdv\n LEFT JOIN delphi_issue_details_with_statuses didws\n ON didws.key = dgdv.detail_key\n LEFT JOIN delphi_report_issues dri\n ON dri.id = didws.issue_id\n AND dri.issue_type != '__dummy'\n WHERE (\n $1::text IS NULL\n OR dgdv.detail_key ILIKE '%' || $1 || '%'\n )\n GROUP BY dgdv.detail_key, dgdv.verdict\n ORDER BY dgdv.detail_key\n LIMIT $2 OFFSET $3\n ",
|
"query": "\n SELECT\n dgdv.detail_key,\n dgdv.verdict AS \"verdict!: DelphiStatus\",\n COUNT(dri.id) AS \"local_trace_count!\"\n FROM delphi_global_detail_verdicts dgdv\n LEFT JOIN delphi_issue_details_with_statuses didws\n ON didws.key = dgdv.detail_key\n LEFT JOIN delphi_report_issues dri\n ON dri.id = didws.issue_id\n AND dri.issue_type != '__dummy'\n WHERE (\n $1::text IS NULL\n OR dgdv.detail_key ILIKE '%' || $1 || '%'\n OR EXISTS (\n SELECT 1\n FROM delphi_issue_details_with_statuses matching_didws\n INNER JOIN delphi_report_issues matching_dri\n ON matching_dri.id = matching_didws.issue_id\n WHERE\n matching_didws.key = dgdv.detail_key\n AND matching_dri.issue_type != '__dummy'\n AND matching_didws.file_path ILIKE '%' || $1 || '%'\n )\n )\n GROUP BY dgdv.detail_key, dgdv.verdict\n ORDER BY dgdv.detail_key\n LIMIT $2 OFFSET $3\n ",
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
{
|
{
|
||||||
@@ -43,5 +43,5 @@
|
|||||||
null
|
null
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"hash": "4680c4a59c6679f90e3b9e1a33ed1cb1fb60b93ffb79ba5b99e01ee0c14c991a"
|
"hash": "33d4e31565ece4a99832cbfd0a39bc49666e9fc8a400a5c41660504205e7cac5"
|
||||||
}
|
}
|
||||||
Generated
+22
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "\n SELECT COUNT(*) AS \"total!\"\n FROM delphi_global_detail_verdicts dgdv\n WHERE (\n $1::text IS NULL\n OR dgdv.detail_key ILIKE '%' || $1 || '%'\n OR EXISTS (\n SELECT 1\n FROM delphi_issue_details_with_statuses matching_didws\n INNER JOIN delphi_report_issues matching_dri\n ON matching_dri.id = matching_didws.issue_id\n WHERE\n matching_didws.key = dgdv.detail_key\n AND matching_dri.issue_type != '__dummy'\n AND matching_didws.file_path ILIKE '%' || $1 || '%'\n )\n )\n ",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"ordinal": 0,
|
||||||
|
"name": "total!",
|
||||||
|
"type_info": "Int8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Text"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
null
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "58a1fc9e1d76a891c961e02544b6d08579dff663d5146c2bdfa0812fed6a4587"
|
||||||
|
}
|
||||||
Generated
+60
@@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "\n WITH project_ids AS (\n SELECT unnest($1::bigint[]) AS project_id\n ),\n detail_states AS (\n SELECT\n p.project_id,\n COALESCE(\n BOOL_OR(\n didws.status = 'pending'\n AND dri.issue_type != $3\n ),\n FALSE\n ) AS has_pending_detail,\n COALESCE(\n BOOL_OR(\n didws.status = 'unsafe'\n AND dri.issue_type != $3\n ),\n FALSE\n ) AS has_unsafe_detail,\n COALESCE(\n BOOL_OR(\n didws.status = 'pending'\n AND dri.issue_type = $3\n ),\n FALSE\n ) AS has_dummy\n FROM project_ids p\n LEFT JOIN delphi_issue_details_with_statuses didws\n ON didws.project_id = p.project_id\n LEFT JOIN delphi_report_issues dri ON dri.id = didws.issue_id\n GROUP BY p.project_id\n )\n SELECT\n p.project_id AS \"project_id!: DBProjectId\",\n p.has_pending_detail AS \"has_pending_detail!\",\n p.has_unsafe_detail AS \"has_unsafe_detail!\",\n p.has_dummy AS \"has_dummy!\",\n (\n SELECT t.id\n FROM threads t\n WHERE t.mod_id = p.project_id\n ORDER BY t.id\n LIMIT 1\n ) AS \"thread_id: DBThreadId\",\n (\n SELECT tm.body->>'type'\n FROM threads t\n INNER JOIN threads_messages tm ON tm.thread_id = t.id\n WHERE\n t.mod_id = p.project_id\n AND tm.body->>'type' = ANY($2::text[])\n ORDER BY tm.created DESC, tm.id DESC\n LIMIT 1\n ) AS \"last_tech_review_message_type\",\n (\n SELECT dr.id\n FROM versions v\n INNER JOIN files f ON f.version_id = v.id\n INNER JOIN delphi_reports dr ON dr.file_id = f.id\n WHERE v.mod_id = p.project_id\n ORDER BY dr.created DESC, dr.id DESC\n LIMIT 1\n ) AS \"report_id: DelphiReportId\"\n FROM detail_states p\n ",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"ordinal": 0,
|
||||||
|
"name": "project_id!: DBProjectId",
|
||||||
|
"type_info": "Int8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ordinal": 1,
|
||||||
|
"name": "has_pending_detail!",
|
||||||
|
"type_info": "Bool"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ordinal": 2,
|
||||||
|
"name": "has_unsafe_detail!",
|
||||||
|
"type_info": "Bool"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ordinal": 3,
|
||||||
|
"name": "has_dummy!",
|
||||||
|
"type_info": "Bool"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ordinal": 4,
|
||||||
|
"name": "thread_id: DBThreadId",
|
||||||
|
"type_info": "Int8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ordinal": 5,
|
||||||
|
"name": "last_tech_review_message_type",
|
||||||
|
"type_info": "Text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ordinal": 6,
|
||||||
|
"name": "report_id: DelphiReportId",
|
||||||
|
"type_info": "Int8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Int8Array",
|
||||||
|
"TextArray",
|
||||||
|
"Text"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "6241bc72a80de01fd8e5506442da48057c24dece008dbf2c00c6ec135d8cef41"
|
||||||
|
}
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"db_name": "PostgreSQL",
|
"db_name": "PostgreSQL",
|
||||||
"query": "\n WITH incoming AS (\n SELECT *\n FROM unnest($1::text[], $2::text[]) WITH ORDINALITY\n AS u(detail_key, verdict, ord)\n ),\n latest AS (\n SELECT DISTINCT ON (detail_key)\n detail_key,\n verdict\n FROM incoming\n ORDER BY detail_key, ord DESC\n ),\n deleted AS (\n DELETE FROM delphi_global_detail_verdicts dgdv\n USING latest\n WHERE\n dgdv.detail_key = latest.detail_key\n AND latest.verdict = 'pending'\n RETURNING 1\n )\n INSERT INTO delphi_global_detail_verdicts (\n detail_key,\n verdict\n )\n SELECT\n detail_key,\n verdict::delphi_report_issue_status\n FROM latest\n WHERE verdict != 'pending'\n ON CONFLICT (detail_key)\n DO UPDATE SET verdict = EXCLUDED.verdict\n ",
|
"query": "\n WITH incoming AS (\n SELECT *\n FROM unnest($1::text[], $2::text[]) WITH ORDINALITY\n AS u(detail_key, verdict, ord)\n ),\n latest AS (\n SELECT DISTINCT ON (detail_key)\n detail_key,\n verdict\n FROM incoming\n ORDER BY detail_key, ord DESC\n ),\n deleted AS (\n DELETE FROM delphi_global_detail_verdicts dgdv\n USING latest\n WHERE\n dgdv.detail_key = latest.detail_key\n AND latest.verdict = 'pending'\n RETURNING 1\n )\n INSERT INTO delphi_global_detail_verdicts (\n detail_key,\n verdict,\n updated_at\n )\n SELECT\n detail_key,\n verdict::delphi_report_issue_status,\n NOW()\n FROM latest\n WHERE verdict != 'pending'\n ON CONFLICT (detail_key)\n DO UPDATE SET\n verdict = EXCLUDED.verdict,\n updated_at = EXCLUDED.updated_at\n ",
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [],
|
"columns": [],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
@@ -11,5 +11,5 @@
|
|||||||
},
|
},
|
||||||
"nullable": []
|
"nullable": []
|
||||||
},
|
},
|
||||||
"hash": "7ca85bcc45e7d53106ea75b606ce2219bd37be7bb33588179cca6f1a26e5bb23"
|
"hash": "7ca9b8f5699f4d60acc50647b7577935ac84730b52a2ee090512a460cf512432"
|
||||||
}
|
}
|
||||||
Generated
-60
@@ -1,60 +0,0 @@
|
|||||||
{
|
|
||||||
"db_name": "PostgreSQL",
|
|
||||||
"query": "\n WITH project_ids AS (\n SELECT unnest($1::bigint[]) AS project_id\n )\n SELECT\n p.project_id AS \"project_id!: DBProjectId\",\n EXISTS(\n SELECT 1\n FROM delphi_issue_details_with_statuses didws\n INNER JOIN delphi_report_issues dri ON dri.id = didws.issue_id\n WHERE\n didws.project_id = p.project_id\n AND didws.status = 'pending'\n AND dri.issue_type != $3\n ) AS \"has_pending_detail!\",\n EXISTS(\n SELECT 1\n FROM delphi_issue_details_with_statuses didws\n INNER JOIN delphi_report_issues dri ON dri.id = didws.issue_id\n WHERE\n didws.project_id = p.project_id\n AND didws.status = 'unsafe'\n AND dri.issue_type != $3\n ) AS \"has_unsafe_detail!\",\n EXISTS(\n SELECT 1\n FROM delphi_issue_details_with_statuses didws\n INNER JOIN delphi_report_issues dri ON dri.id = didws.issue_id\n WHERE\n didws.project_id = p.project_id\n AND didws.status = 'pending'\n AND dri.issue_type = $3\n ) AS \"has_dummy!\",\n (\n SELECT t.id\n FROM threads t\n WHERE t.mod_id = p.project_id\n ORDER BY t.id\n LIMIT 1\n ) AS \"thread_id: DBThreadId\",\n (\n SELECT tm.body->>'type'\n FROM threads t\n INNER JOIN threads_messages tm ON tm.thread_id = t.id\n WHERE\n t.mod_id = p.project_id\n AND tm.body->>'type' = ANY($2::text[])\n ORDER BY tm.created DESC, tm.id DESC\n LIMIT 1\n ) AS \"last_tech_review_message_type\",\n (\n SELECT dr.id\n FROM versions v\n INNER JOIN files f ON f.version_id = v.id\n INNER JOIN delphi_reports dr ON dr.file_id = f.id\n WHERE v.mod_id = p.project_id\n ORDER BY dr.created DESC, dr.id DESC\n LIMIT 1\n ) AS \"report_id: DelphiReportId\"\n FROM project_ids p\n ",
|
|
||||||
"describe": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"ordinal": 0,
|
|
||||||
"name": "project_id!: DBProjectId",
|
|
||||||
"type_info": "Int8"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ordinal": 1,
|
|
||||||
"name": "has_pending_detail!",
|
|
||||||
"type_info": "Bool"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ordinal": 2,
|
|
||||||
"name": "has_unsafe_detail!",
|
|
||||||
"type_info": "Bool"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ordinal": 3,
|
|
||||||
"name": "has_dummy!",
|
|
||||||
"type_info": "Bool"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ordinal": 4,
|
|
||||||
"name": "thread_id: DBThreadId",
|
|
||||||
"type_info": "Int8"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ordinal": 5,
|
|
||||||
"name": "last_tech_review_message_type",
|
|
||||||
"type_info": "Text"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ordinal": 6,
|
|
||||||
"name": "report_id: DelphiReportId",
|
|
||||||
"type_info": "Int8"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"parameters": {
|
|
||||||
"Left": [
|
|
||||||
"Int8Array",
|
|
||||||
"TextArray",
|
|
||||||
"Text"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"nullable": [
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"hash": "bb94018c84f3809b9ad89f35ff08501addc8f203a0a152346aaebd32db52be30"
|
|
||||||
}
|
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"db_name": "PostgreSQL",
|
"db_name": "PostgreSQL",
|
||||||
"query": "\n WITH incoming AS (\n SELECT *\n FROM unnest($1::bigint[], $2::text[]) WITH ORDINALITY\n AS u(detail_id, verdict, ord)\n ),\n resolved AS (\n SELECT\n i.ord,\n didws.project_id,\n didws.key AS detail_key,\n i.verdict\n FROM incoming i\n INNER JOIN delphi_issue_details_with_statuses didws ON didws.id = i.detail_id\n INNER JOIN delphi_report_issues dri ON dri.id = didws.issue_id\n WHERE\n -- see delphi.rs todo comment\n dri.issue_type != '__dummy'\n ),\n validated AS (\n SELECT\n (SELECT COUNT(*) FROM incoming) AS incoming_count,\n (SELECT COUNT(*) FROM resolved) AS resolved_count\n ),\n latest AS (\n SELECT DISTINCT ON (project_id, detail_key)\n project_id,\n detail_key,\n verdict\n FROM resolved\n ORDER BY project_id, detail_key, ord DESC\n ),\n deleted AS (\n DELETE FROM delphi_issue_detail_verdicts didv\n USING latest\n WHERE\n didv.project_id = latest.project_id\n AND didv.detail_key = latest.detail_key\n AND latest.verdict = 'pending'\n RETURNING 1\n ),\n upserted AS (\n INSERT INTO delphi_issue_detail_verdicts (\n project_id,\n detail_key,\n verdict\n )\n SELECT\n project_id,\n detail_key,\n verdict::delphi_report_issue_status\n FROM latest\n WHERE verdict != 'pending'\n ON CONFLICT (project_id, detail_key)\n DO UPDATE SET verdict = EXCLUDED.verdict\n RETURNING 1\n )\n SELECT\n (v.incoming_count = v.resolved_count) AS \"all_found!\",\n (SELECT COUNT(*) FROM upserted) AS \"upserted_count!\"\n FROM validated v\n ",
|
"query": "\n WITH incoming AS (\n SELECT *\n FROM unnest($1::bigint[], $2::text[]) WITH ORDINALITY\n AS u(detail_id, verdict, ord)\n ),\n resolved AS (\n SELECT\n i.ord,\n didws.project_id,\n didws.key AS detail_key,\n i.verdict\n FROM incoming i\n INNER JOIN delphi_issue_details_with_statuses didws ON didws.id = i.detail_id\n INNER JOIN delphi_report_issues dri ON dri.id = didws.issue_id\n WHERE\n -- see delphi.rs todo comment\n dri.issue_type != '__dummy'\n ),\n validated AS (\n SELECT\n (SELECT COUNT(*) FROM incoming) AS incoming_count,\n (SELECT COUNT(*) FROM resolved) AS resolved_count\n ),\n latest AS (\n SELECT DISTINCT ON (project_id, detail_key)\n project_id,\n detail_key,\n verdict\n FROM resolved\n ORDER BY project_id, detail_key, ord DESC\n ),\n deleted AS (\n DELETE FROM delphi_issue_detail_verdicts didv\n USING latest\n WHERE\n didv.project_id = latest.project_id\n AND didv.detail_key = latest.detail_key\n AND latest.verdict = 'pending'\n RETURNING 1\n ),\n upserted AS (\n INSERT INTO delphi_issue_detail_verdicts (\n project_id,\n detail_key,\n verdict,\n updated_at\n )\n SELECT\n project_id,\n detail_key,\n verdict::delphi_report_issue_status,\n NOW()\n FROM latest\n WHERE verdict != 'pending'\n ON CONFLICT (project_id, detail_key)\n DO UPDATE SET\n verdict = EXCLUDED.verdict,\n updated_at = EXCLUDED.updated_at\n RETURNING 1\n )\n SELECT\n (v.incoming_count = v.resolved_count) AS \"all_found!\",\n (SELECT COUNT(*) FROM upserted) AS \"upserted_count!\"\n FROM validated v\n ",
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
{
|
{
|
||||||
@@ -25,5 +25,5 @@
|
|||||||
null
|
null
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"hash": "e8b6e423aaf62046afd19fb1e177a3ef1f18f4814df8924926c47d4b0c7145c7"
|
"hash": "c40c2085202bc4486568fb24db9201239cefbe174f4a5cc4b8eb21a10268cd73"
|
||||||
}
|
}
|
||||||
Generated
-22
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"db_name": "PostgreSQL",
|
|
||||||
"query": "\n SELECT COUNT(*) AS \"total!\"\n FROM delphi_global_detail_verdicts dgdv\n WHERE (\n $1::text IS NULL\n OR dgdv.detail_key ILIKE '%' || $1 || '%'\n )\n ",
|
|
||||||
"describe": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"ordinal": 0,
|
|
||||||
"name": "total!",
|
|
||||||
"type_info": "Int8"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"parameters": {
|
|
||||||
"Left": [
|
|
||||||
"Text"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"nullable": [
|
|
||||||
null
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"hash": "c9d5796b2c98dedd9f2f237a1a2cf7a059a49387c0c564b730733bda7358f7fe"
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
ALTER TABLE delphi_issue_detail_verdicts
|
||||||
|
ADD COLUMN updated_at TIMESTAMPTZ;
|
||||||
|
|
||||||
|
ALTER TABLE delphi_global_detail_verdicts
|
||||||
|
ADD COLUMN updated_at TIMESTAMPTZ;
|
||||||
|
|
||||||
|
CREATE INDEX delphi_report_issue_details_issue_id
|
||||||
|
ON delphi_report_issue_details (issue_id);
|
||||||
|
|
||||||
|
CREATE INDEX threads_messages_thread_id_created_id
|
||||||
|
ON threads_messages (thread_id, created DESC, id DESC);
|
||||||
@@ -88,36 +88,42 @@ pub async fn sync_project_tech_review_state(
|
|||||||
r#"
|
r#"
|
||||||
WITH project_ids AS (
|
WITH project_ids AS (
|
||||||
SELECT unnest($1::bigint[]) AS project_id
|
SELECT unnest($1::bigint[]) AS project_id
|
||||||
|
),
|
||||||
|
detail_states AS (
|
||||||
|
SELECT
|
||||||
|
p.project_id,
|
||||||
|
COALESCE(
|
||||||
|
BOOL_OR(
|
||||||
|
didws.status = 'pending'
|
||||||
|
AND dri.issue_type != $3
|
||||||
|
),
|
||||||
|
FALSE
|
||||||
|
) AS has_pending_detail,
|
||||||
|
COALESCE(
|
||||||
|
BOOL_OR(
|
||||||
|
didws.status = 'unsafe'
|
||||||
|
AND dri.issue_type != $3
|
||||||
|
),
|
||||||
|
FALSE
|
||||||
|
) AS has_unsafe_detail,
|
||||||
|
COALESCE(
|
||||||
|
BOOL_OR(
|
||||||
|
didws.status = 'pending'
|
||||||
|
AND dri.issue_type = $3
|
||||||
|
),
|
||||||
|
FALSE
|
||||||
|
) AS has_dummy
|
||||||
|
FROM project_ids p
|
||||||
|
LEFT JOIN delphi_issue_details_with_statuses didws
|
||||||
|
ON didws.project_id = p.project_id
|
||||||
|
LEFT JOIN delphi_report_issues dri ON dri.id = didws.issue_id
|
||||||
|
GROUP BY p.project_id
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
p.project_id AS "project_id!: DBProjectId",
|
p.project_id AS "project_id!: DBProjectId",
|
||||||
EXISTS(
|
p.has_pending_detail AS "has_pending_detail!",
|
||||||
SELECT 1
|
p.has_unsafe_detail AS "has_unsafe_detail!",
|
||||||
FROM delphi_issue_details_with_statuses didws
|
p.has_dummy AS "has_dummy!",
|
||||||
INNER JOIN delphi_report_issues dri ON dri.id = didws.issue_id
|
|
||||||
WHERE
|
|
||||||
didws.project_id = p.project_id
|
|
||||||
AND didws.status = 'pending'
|
|
||||||
AND dri.issue_type != $3
|
|
||||||
) AS "has_pending_detail!",
|
|
||||||
EXISTS(
|
|
||||||
SELECT 1
|
|
||||||
FROM delphi_issue_details_with_statuses didws
|
|
||||||
INNER JOIN delphi_report_issues dri ON dri.id = didws.issue_id
|
|
||||||
WHERE
|
|
||||||
didws.project_id = p.project_id
|
|
||||||
AND didws.status = 'unsafe'
|
|
||||||
AND dri.issue_type != $3
|
|
||||||
) AS "has_unsafe_detail!",
|
|
||||||
EXISTS(
|
|
||||||
SELECT 1
|
|
||||||
FROM delphi_issue_details_with_statuses didws
|
|
||||||
INNER JOIN delphi_report_issues dri ON dri.id = didws.issue_id
|
|
||||||
WHERE
|
|
||||||
didws.project_id = p.project_id
|
|
||||||
AND didws.status = 'pending'
|
|
||||||
AND dri.issue_type = $3
|
|
||||||
) AS "has_dummy!",
|
|
||||||
(
|
(
|
||||||
SELECT t.id
|
SELECT t.id
|
||||||
FROM threads t
|
FROM threads t
|
||||||
@@ -144,7 +150,7 @@ pub async fn sync_project_tech_review_state(
|
|||||||
ORDER BY dr.created DESC, dr.id DESC
|
ORDER BY dr.created DESC, dr.id DESC
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
) AS "report_id: DelphiReportId"
|
) AS "report_id: DelphiReportId"
|
||||||
FROM project_ids p
|
FROM detail_states p
|
||||||
"#,
|
"#,
|
||||||
&project_ids_raw,
|
&project_ids_raw,
|
||||||
&tech_review_message_types,
|
&tech_review_message_types,
|
||||||
|
|||||||
@@ -1288,16 +1288,20 @@ pub async fn update_issue_details(
|
|||||||
INSERT INTO delphi_issue_detail_verdicts (
|
INSERT INTO delphi_issue_detail_verdicts (
|
||||||
project_id,
|
project_id,
|
||||||
detail_key,
|
detail_key,
|
||||||
verdict
|
verdict,
|
||||||
|
updated_at
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
project_id,
|
project_id,
|
||||||
detail_key,
|
detail_key,
|
||||||
verdict::delphi_report_issue_status
|
verdict::delphi_report_issue_status,
|
||||||
|
NOW()
|
||||||
FROM latest
|
FROM latest
|
||||||
WHERE verdict != 'pending'
|
WHERE verdict != 'pending'
|
||||||
ON CONFLICT (project_id, detail_key)
|
ON CONFLICT (project_id, detail_key)
|
||||||
DO UPDATE SET verdict = EXCLUDED.verdict
|
DO UPDATE SET
|
||||||
|
verdict = EXCLUDED.verdict,
|
||||||
|
updated_at = EXCLUDED.updated_at
|
||||||
RETURNING 1
|
RETURNING 1
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
@@ -1431,15 +1435,19 @@ pub async fn update_global_issue_details(
|
|||||||
)
|
)
|
||||||
INSERT INTO delphi_global_detail_verdicts (
|
INSERT INTO delphi_global_detail_verdicts (
|
||||||
detail_key,
|
detail_key,
|
||||||
verdict
|
verdict,
|
||||||
|
updated_at
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
detail_key,
|
detail_key,
|
||||||
verdict::delphi_report_issue_status
|
verdict::delphi_report_issue_status,
|
||||||
|
NOW()
|
||||||
FROM latest
|
FROM latest
|
||||||
WHERE verdict != 'pending'
|
WHERE verdict != 'pending'
|
||||||
ON CONFLICT (detail_key)
|
ON CONFLICT (detail_key)
|
||||||
DO UPDATE SET verdict = EXCLUDED.verdict
|
DO UPDATE SET
|
||||||
|
verdict = EXCLUDED.verdict,
|
||||||
|
updated_at = EXCLUDED.updated_at
|
||||||
"#,
|
"#,
|
||||||
&detail_keys,
|
&detail_keys,
|
||||||
&verdicts,
|
&verdicts,
|
||||||
|
|||||||
@@ -170,6 +170,16 @@ pub async fn search_global_issue_details(
|
|||||||
WHERE (
|
WHERE (
|
||||||
$1::text IS NULL
|
$1::text IS NULL
|
||||||
OR dgdv.detail_key ILIKE '%' || $1 || '%'
|
OR dgdv.detail_key ILIKE '%' || $1 || '%'
|
||||||
|
OR EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM delphi_issue_details_with_statuses matching_didws
|
||||||
|
INNER JOIN delphi_report_issues matching_dri
|
||||||
|
ON matching_dri.id = matching_didws.issue_id
|
||||||
|
WHERE
|
||||||
|
matching_didws.key = dgdv.detail_key
|
||||||
|
AND matching_dri.issue_type != '__dummy'
|
||||||
|
AND matching_didws.file_path ILIKE '%' || $1 || '%'
|
||||||
|
)
|
||||||
)
|
)
|
||||||
"#,
|
"#,
|
||||||
query,
|
query,
|
||||||
@@ -194,6 +204,16 @@ pub async fn search_global_issue_details(
|
|||||||
WHERE (
|
WHERE (
|
||||||
$1::text IS NULL
|
$1::text IS NULL
|
||||||
OR dgdv.detail_key ILIKE '%' || $1 || '%'
|
OR dgdv.detail_key ILIKE '%' || $1 || '%'
|
||||||
|
OR EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM delphi_issue_details_with_statuses matching_didws
|
||||||
|
INNER JOIN delphi_report_issues matching_dri
|
||||||
|
ON matching_dri.id = matching_didws.issue_id
|
||||||
|
WHERE
|
||||||
|
matching_didws.key = dgdv.detail_key
|
||||||
|
AND matching_dri.issue_type != '__dummy'
|
||||||
|
AND matching_didws.file_path ILIKE '%' || $1 || '%'
|
||||||
|
)
|
||||||
)
|
)
|
||||||
GROUP BY dgdv.detail_key, dgdv.verdict
|
GROUP BY dgdv.detail_key, dgdv.verdict
|
||||||
ORDER BY dgdv.detail_key
|
ORDER BY dgdv.detail_key
|
||||||
@@ -249,6 +269,11 @@ pub async fn search_global_issue_details(
|
|||||||
WHERE
|
WHERE
|
||||||
didws.key = ANY($1::text[])
|
didws.key = ANY($1::text[])
|
||||||
AND dri.issue_type != '__dummy'
|
AND dri.issue_type != '__dummy'
|
||||||
|
AND (
|
||||||
|
$3::text IS NULL
|
||||||
|
OR didws.key ILIKE '%' || $3 || '%'
|
||||||
|
OR didws.file_path ILIKE '%' || $3 || '%'
|
||||||
|
)
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
detail_key AS "detail_key!",
|
detail_key AS "detail_key!",
|
||||||
@@ -273,6 +298,7 @@ pub async fn search_global_issue_details(
|
|||||||
"#,
|
"#,
|
||||||
&detail_keys,
|
&detail_keys,
|
||||||
LOCAL_TRACE_PREVIEW_LIMIT,
|
LOCAL_TRACE_PREVIEW_LIMIT,
|
||||||
|
query,
|
||||||
)
|
)
|
||||||
.fetch_all(&**pool)
|
.fetch_all(&**pool)
|
||||||
.await
|
.await
|
||||||
|
|||||||
Reference in New Issue
Block a user