Fix queries not working

This commit is contained in:
Geometrically
2021-01-25 13:00:04 -07:00
parent 140a8b6804
commit fcd548c313
3 changed files with 475 additions and 292 deletions

View File

@@ -471,6 +471,188 @@
"nullable": []
}
},
"1d1ab2b9b33bc9964c0d341385f411d243867a0489706cfb29c0f8689c092bb9": {
"query": "\n SELECT m.id id, m.title title, m.description description, m.downloads downloads,\n m.icon_url icon_url, m.body body, m.body_url body_url, m.published published,\n m.updated updated, m.status status,\n m.issues_url issues_url, m.source_url source_url, m.wiki_url wiki_url, m.discord_url discord_url, m.license_url license_url,\n m.team_id team_id, m.client_side client_side, m.server_side server_side, m.license license, m.slug slug,\n s.status status_name, cs.name client_side_type, ss.name server_side_type, l.short short, l.name license_name,\n ARRAY_AGG( DISTINCT c.category) categories, ARRAY_AGG(DISTINCT v.id) versions,\n ARRAY_AGG( DISTINCT md.joining_platform_id || ', ' || md.url || ', ' || dp.short || ', ' || dp.name) donations\n FROM mods m\n INNER JOIN mods_categories mc ON joining_mod_id = m.id\n INNER JOIN categories c ON mc.joining_category_id = c.id\n INNER JOIN versions v ON v.mod_id = m.id\n LEFT OUTER JOIN mods_donations md ON md.joining_mod_id = m.id\n LEFT OUTER JOIN donation_platforms dp ON md.joining_platform_id = dp.id\n INNER JOIN statuses s ON s.id = m.status\n INNER JOIN side_types cs ON m.client_side = cs.id\n INNER JOIN side_types ss ON m.server_side = ss.id\n INNER JOIN licenses l ON m.license = l.id\n WHERE m.id IN (SELECT * FROM UNNEST($1::bigint[]))\n GROUP BY m.id, s.id, cs.id, ss.id, l.id;\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "title",
"type_info": "Varchar"
},
{
"ordinal": 2,
"name": "description",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "downloads",
"type_info": "Int4"
},
{
"ordinal": 4,
"name": "icon_url",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "body",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "body_url",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "published",
"type_info": "Timestamptz"
},
{
"ordinal": 8,
"name": "updated",
"type_info": "Timestamptz"
},
{
"ordinal": 9,
"name": "status",
"type_info": "Int4"
},
{
"ordinal": 10,
"name": "issues_url",
"type_info": "Varchar"
},
{
"ordinal": 11,
"name": "source_url",
"type_info": "Varchar"
},
{
"ordinal": 12,
"name": "wiki_url",
"type_info": "Varchar"
},
{
"ordinal": 13,
"name": "discord_url",
"type_info": "Varchar"
},
{
"ordinal": 14,
"name": "license_url",
"type_info": "Varchar"
},
{
"ordinal": 15,
"name": "team_id",
"type_info": "Int8"
},
{
"ordinal": 16,
"name": "client_side",
"type_info": "Int4"
},
{
"ordinal": 17,
"name": "server_side",
"type_info": "Int4"
},
{
"ordinal": 18,
"name": "license",
"type_info": "Int4"
},
{
"ordinal": 19,
"name": "slug",
"type_info": "Varchar"
},
{
"ordinal": 20,
"name": "status_name",
"type_info": "Varchar"
},
{
"ordinal": 21,
"name": "client_side_type",
"type_info": "Varchar"
},
{
"ordinal": 22,
"name": "server_side_type",
"type_info": "Varchar"
},
{
"ordinal": 23,
"name": "short",
"type_info": "Varchar"
},
{
"ordinal": 24,
"name": "license_name",
"type_info": "Varchar"
},
{
"ordinal": 25,
"name": "categories",
"type_info": "VarcharArray"
},
{
"ordinal": 26,
"name": "versions",
"type_info": "Int8Array"
},
{
"ordinal": 27,
"name": "donations",
"type_info": "TextArray"
}
],
"parameters": {
"Left": [
"Int8Array"
]
},
"nullable": [
false,
false,
false,
false,
true,
false,
true,
false,
false,
false,
true,
true,
true,
true,
true,
false,
false,
false,
false,
true,
false,
false,
false,
false,
false,
null,
null,
null
]
}
},
"1db6be78a74ff04c52ee105e0df30acf5bbf18f1de328980bb7f3da7f5f6569e": {
"query": "\n SELECT id FROM side_types\n WHERE name = $1\n ",
"describe": {
@@ -1708,110 +1890,6 @@
"nullable": []
}
},
"7562d8fd242d5f73b94e87affffade9b7a4cef2aecc9dce2e45ee7045a59dbd9": {
"query": "\n SELECT v.id id, v.mod_id mod_id, v.author_id author_id, v.name version_name, v.version_number version_number,\n v.changelog changelog, v.changelog_url changelog_url, v.date_published date_published, v.downloads downloads,\n rc.channel release_channel, v.featured featured,\n ARRAY_AGG(gv.version ORDER BY gv.created) game_versions, ARRAY_AGG(DISTINCT l.loader) loaders,\n ARRAY_AGG(DISTINCT f.id || ', ' || f.filename || ', ' || f.is_primary || ', ' || f.url) files,\n ARRAY_AGG(DISTINCT h.hash || ', ' || h.algorithm || ', ' || h.file_id) hashes\n FROM versions v\n INNER JOIN release_channels rc on v.release_channel = rc.id\n INNER JOIN game_versions_versions gvv on v.id = gvv.joining_version_id\n INNER JOIN game_versions gv on gvv.game_version_id = gv.id\n INNER JOIN loaders_versions lv on v.id = lv.version_id\n INNER JOIN loaders l on lv.loader_id = l.id\n INNER JOIN files f on v.id = f.version_id\n INNER JOIN hashes h on f.id = h.file_id\n WHERE v.id IN (SELECT * FROM UNNEST($1::bigint[]))\n GROUP BY v.id, rc.id;\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "mod_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "author_id",
"type_info": "Int8"
},
{
"ordinal": 3,
"name": "version_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "version_number",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "changelog",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "changelog_url",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "date_published",
"type_info": "Timestamptz"
},
{
"ordinal": 8,
"name": "downloads",
"type_info": "Int4"
},
{
"ordinal": 9,
"name": "release_channel",
"type_info": "Varchar"
},
{
"ordinal": 10,
"name": "featured",
"type_info": "Bool"
},
{
"ordinal": 11,
"name": "game_versions",
"type_info": "VarcharArray"
},
{
"ordinal": 12,
"name": "loaders",
"type_info": "VarcharArray"
},
{
"ordinal": 13,
"name": "files",
"type_info": "TextArray"
},
{
"ordinal": 14,
"name": "hashes",
"type_info": "TextArray"
}
],
"parameters": {
"Left": [
"Int8Array"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
null,
null,
null,
null
]
}
},
"763eaff18057e579472960e9e8256c22ae275f24a45da96bc3e47385376faae3": {
"query": "\n UPDATE mods\n SET downloads = downloads + 1\n WHERE id = $1\n ",
"describe": {
@@ -1928,6 +2006,110 @@
]
}
},
"8202cfa1d8299c7ae8d204e04ee5d300a786b3bc2b8fe4bb4cdeb4e97d0274d2": {
"query": "\n SELECT v.id id, v.mod_id mod_id, v.author_id author_id, v.name version_name, v.version_number version_number,\n v.changelog changelog, v.changelog_url changelog_url, v.date_published date_published, v.downloads downloads,\n rc.channel release_channel, v.featured featured,\n ARRAY_AGG(gv.version ORDER BY gv.created) game_versions, ARRAY_AGG(DISTINCT l.loader) loaders,\n ARRAY_AGG(DISTINCT f.id || ', ' || f.filename || ', ' || f.is_primary || ', ' || f.url) files,\n ARRAY_AGG(DISTINCT h.algorithm || ', ' || encode(h.hash, 'escape') || ', ' || h.file_id) hashes\n FROM versions v\n INNER JOIN release_channels rc on v.release_channel = rc.id\n INNER JOIN game_versions_versions gvv on v.id = gvv.joining_version_id\n INNER JOIN game_versions gv on gvv.game_version_id = gv.id\n INNER JOIN loaders_versions lv on v.id = lv.version_id\n INNER JOIN loaders l on lv.loader_id = l.id\n INNER JOIN files f on v.id = f.version_id\n INNER JOIN hashes h on f.id = h.file_id\n WHERE v.id IN (SELECT * FROM UNNEST($1::bigint[]))\n GROUP BY v.id, rc.id;\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "mod_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "author_id",
"type_info": "Int8"
},
{
"ordinal": 3,
"name": "version_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "version_number",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "changelog",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "changelog_url",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "date_published",
"type_info": "Timestamptz"
},
{
"ordinal": 8,
"name": "downloads",
"type_info": "Int4"
},
{
"ordinal": 9,
"name": "release_channel",
"type_info": "Varchar"
},
{
"ordinal": 10,
"name": "featured",
"type_info": "Bool"
},
{
"ordinal": 11,
"name": "game_versions",
"type_info": "VarcharArray"
},
{
"ordinal": 12,
"name": "loaders",
"type_info": "VarcharArray"
},
{
"ordinal": 13,
"name": "files",
"type_info": "TextArray"
},
{
"ordinal": 14,
"name": "hashes",
"type_info": "TextArray"
}
],
"parameters": {
"Left": [
"Int8Array"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
null,
null,
null,
null
]
}
},
"82515e4e7e88f1193c956f032caabc70f535f925e212de30f974afd3ec126092": {
"query": "\n INSERT INTO licenses (short, name)\n VALUES ($1, $2)\n ON CONFLICT (short) DO NOTHING\n RETURNING id\n ",
"describe": {
@@ -3069,188 +3251,6 @@
]
}
},
"c2e49d3d71b4fe46ad1775311b3fdbd9065675a096921186eff2e2b280874afe": {
"query": "\n SELECT m.id id, m.title title, m.description description, m.downloads downloads,\n m.icon_url icon_url, m.body body, m.body_url body_url, m.published published,\n m.updated updated, m.status status,\n m.issues_url issues_url, m.source_url source_url, m.wiki_url wiki_url, m.discord_url discord_url, m.license_url license_url,\n m.team_id team_id, m.client_side client_side, m.server_side server_side, m.license license, m.slug slug,\n s.status status_name, cs.name client_side_type, ss.name server_side_type, l.short short, l.name license_name,\n ARRAY_AGG( DISTINCT c.category) categories, ARRAY_AGG(DISTINCT v.id) versions, ARRAY_AGG(DISTINCT md.joining_platform_id || ', ' || md.url || ', ' || dp.short || ', ' || dp.name) donations\n FROM mods m\n INNER JOIN mods_categories mc ON joining_mod_id = m.id\n INNER JOIN categories c ON mc.joining_category_id = c.id\n INNER JOIN versions v ON v.mod_id = m.id\n INNER JOIN mods_donations md ON md.joining_mod_id = m.id\n INNER JOIN donation_platforms dp ON md.joining_platform_id = dp.id\n INNER JOIN statuses s ON s.id = m.status\n INNER JOIN side_types cs ON m.client_side = cs.id\n INNER JOIN side_types ss ON m.server_side = ss.id\n INNER JOIN licenses l ON m.license = l.id\n WHERE m.id IN (SELECT * FROM UNNEST($1::bigint[]))\n GROUP BY m.id, s.id, cs.id, ss.id, l.id;\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "title",
"type_info": "Varchar"
},
{
"ordinal": 2,
"name": "description",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "downloads",
"type_info": "Int4"
},
{
"ordinal": 4,
"name": "icon_url",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "body",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "body_url",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "published",
"type_info": "Timestamptz"
},
{
"ordinal": 8,
"name": "updated",
"type_info": "Timestamptz"
},
{
"ordinal": 9,
"name": "status",
"type_info": "Int4"
},
{
"ordinal": 10,
"name": "issues_url",
"type_info": "Varchar"
},
{
"ordinal": 11,
"name": "source_url",
"type_info": "Varchar"
},
{
"ordinal": 12,
"name": "wiki_url",
"type_info": "Varchar"
},
{
"ordinal": 13,
"name": "discord_url",
"type_info": "Varchar"
},
{
"ordinal": 14,
"name": "license_url",
"type_info": "Varchar"
},
{
"ordinal": 15,
"name": "team_id",
"type_info": "Int8"
},
{
"ordinal": 16,
"name": "client_side",
"type_info": "Int4"
},
{
"ordinal": 17,
"name": "server_side",
"type_info": "Int4"
},
{
"ordinal": 18,
"name": "license",
"type_info": "Int4"
},
{
"ordinal": 19,
"name": "slug",
"type_info": "Varchar"
},
{
"ordinal": 20,
"name": "status_name",
"type_info": "Varchar"
},
{
"ordinal": 21,
"name": "client_side_type",
"type_info": "Varchar"
},
{
"ordinal": 22,
"name": "server_side_type",
"type_info": "Varchar"
},
{
"ordinal": 23,
"name": "short",
"type_info": "Varchar"
},
{
"ordinal": 24,
"name": "license_name",
"type_info": "Varchar"
},
{
"ordinal": 25,
"name": "categories",
"type_info": "VarcharArray"
},
{
"ordinal": 26,
"name": "versions",
"type_info": "Int8Array"
},
{
"ordinal": 27,
"name": "donations",
"type_info": "TextArray"
}
],
"parameters": {
"Left": [
"Int8Array"
]
},
"nullable": [
false,
false,
false,
false,
true,
false,
true,
false,
false,
false,
true,
true,
true,
true,
true,
false,
false,
false,
false,
true,
false,
false,
false,
false,
false,
null,
null,
null
]
}
},
"c545a74e902c5c63bca1057b76e94b9547ee21fadbc61964f45837915d5f4608": {
"query": "\n INSERT INTO mods_donations (\n joining_mod_id, joining_platform_id, url\n )\n VALUES (\n $1, $2, $3\n )\n ",
"describe": {
@@ -3977,6 +3977,188 @@
"nullable": []
}
},
"f4e16c3b62a9bc1a41ee4236e3e134ebc942d92199e8a4bb8d4b8692043de399": {
"query": "\n SELECT m.id id, m.title title, m.description description, m.downloads downloads,\n m.icon_url icon_url, m.body body, m.body_url body_url, m.published published,\n m.updated updated, m.status status,\n m.issues_url issues_url, m.source_url source_url, m.wiki_url wiki_url, m.discord_url discord_url, m.license_url license_url,\n m.team_id team_id, m.client_side client_side, m.server_side server_side, m.license license, m.slug slug,\n s.status status_name, cs.name client_side_type, ss.name server_side_type, l.short short, l.name license_name,\n ARRAY_AGG( DISTINCT c.category) categories, ARRAY_AGG(DISTINCT v.id) versions, ARRAY_AGG(DISTINCT md.joining_platform_id || ', ' || md.url || ', ' || dp.short || ', ' || dp.name) donations\n FROM mods m\n INNER JOIN mods_categories mc ON joining_mod_id = m.id\n INNER JOIN categories c ON mc.joining_category_id = c.id\n INNER JOIN versions v ON v.mod_id = m.id\n INNER JOIN mods_donations md ON md.joining_mod_id = m.id\n INNER JOIN donation_platforms dp ON md.joining_platform_id = dp.id\n INNER JOIN statuses s ON s.id = m.status\n INNER JOIN side_types cs ON m.client_side = cs.id\n INNER JOIN side_types ss ON m.server_side = ss.id\n INNER JOIN licenses l ON m.license = l.id\n WHERE m.id = $1\n GROUP BY m.id, s.id, cs.id, ss.id, l.id;\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "title",
"type_info": "Varchar"
},
{
"ordinal": 2,
"name": "description",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "downloads",
"type_info": "Int4"
},
{
"ordinal": 4,
"name": "icon_url",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "body",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "body_url",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "published",
"type_info": "Timestamptz"
},
{
"ordinal": 8,
"name": "updated",
"type_info": "Timestamptz"
},
{
"ordinal": 9,
"name": "status",
"type_info": "Int4"
},
{
"ordinal": 10,
"name": "issues_url",
"type_info": "Varchar"
},
{
"ordinal": 11,
"name": "source_url",
"type_info": "Varchar"
},
{
"ordinal": 12,
"name": "wiki_url",
"type_info": "Varchar"
},
{
"ordinal": 13,
"name": "discord_url",
"type_info": "Varchar"
},
{
"ordinal": 14,
"name": "license_url",
"type_info": "Varchar"
},
{
"ordinal": 15,
"name": "team_id",
"type_info": "Int8"
},
{
"ordinal": 16,
"name": "client_side",
"type_info": "Int4"
},
{
"ordinal": 17,
"name": "server_side",
"type_info": "Int4"
},
{
"ordinal": 18,
"name": "license",
"type_info": "Int4"
},
{
"ordinal": 19,
"name": "slug",
"type_info": "Varchar"
},
{
"ordinal": 20,
"name": "status_name",
"type_info": "Varchar"
},
{
"ordinal": 21,
"name": "client_side_type",
"type_info": "Varchar"
},
{
"ordinal": 22,
"name": "server_side_type",
"type_info": "Varchar"
},
{
"ordinal": 23,
"name": "short",
"type_info": "Varchar"
},
{
"ordinal": 24,
"name": "license_name",
"type_info": "Varchar"
},
{
"ordinal": 25,
"name": "categories",
"type_info": "VarcharArray"
},
{
"ordinal": 26,
"name": "versions",
"type_info": "Int8Array"
},
{
"ordinal": 27,
"name": "donations",
"type_info": "TextArray"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false,
false,
false,
false,
true,
false,
true,
false,
false,
false,
true,
true,
true,
true,
true,
false,
false,
false,
false,
true,
false,
false,
false,
false,
false,
null,
null,
null
]
}
},
"f7bea04e8e279e27a24de1bdf3c413daa8677994df5131494b28691ed6611efc": {
"query": "\n SELECT url,expires FROM states\n WHERE id = $1\n ",
"describe": {

View File

@@ -420,7 +420,7 @@ impl Mod {
INNER JOIN side_types cs ON m.client_side = cs.id
INNER JOIN side_types ss ON m.server_side = ss.id
INNER JOIN licenses l ON m.license = l.id
WHERE m.id IN (SELECT * FROM UNNEST($1::bigint[]))
WHERE m.id = $1
GROUP BY m.id, s.id, cs.id, ss.id, l.id;
",
id as ModId,
@@ -506,13 +506,14 @@ impl Mod {
m.issues_url issues_url, m.source_url source_url, m.wiki_url wiki_url, m.discord_url discord_url, m.license_url license_url,
m.team_id team_id, m.client_side client_side, m.server_side server_side, m.license license, m.slug slug,
s.status status_name, cs.name client_side_type, ss.name server_side_type, l.short short, l.name license_name,
ARRAY_AGG( DISTINCT c.category) categories, ARRAY_AGG(DISTINCT v.id) versions, ARRAY_AGG(DISTINCT md.joining_platform_id || ', ' || md.url || ', ' || dp.short || ', ' || dp.name) donations
ARRAY_AGG( DISTINCT c.category) categories, ARRAY_AGG(DISTINCT v.id) versions,
ARRAY_AGG( DISTINCT md.joining_platform_id || ', ' || md.url || ', ' || dp.short || ', ' || dp.name) donations
FROM mods m
INNER JOIN mods_categories mc ON joining_mod_id = m.id
INNER JOIN categories c ON mc.joining_category_id = c.id
INNER JOIN versions v ON v.mod_id = m.id
INNER JOIN mods_donations md ON md.joining_mod_id = m.id
INNER JOIN donation_platforms dp ON md.joining_platform_id = dp.id
LEFT OUTER JOIN mods_donations md ON md.joining_mod_id = m.id
LEFT OUTER JOIN donation_platforms dp ON md.joining_platform_id = dp.id
INNER JOIN statuses s ON s.id = m.status
INNER JOIN side_types cs ON m.client_side = cs.id
INNER JOIN side_types ss ON m.server_side = ss.id

View File

@@ -557,7 +557,7 @@ impl Version {
rc.channel release_channel, v.featured featured,
ARRAY_AGG(gv.version ORDER BY gv.created) game_versions, ARRAY_AGG(DISTINCT l.loader) loaders,
ARRAY_AGG(DISTINCT f.id || ', ' || f.filename || ', ' || f.is_primary || ', ' || f.url) files,
ARRAY_AGG(DISTINCT h.hash || ', ' || h.algorithm || ', ' || h.file_id) hashes
ARRAY_AGG(DISTINCT h.algorithm || ', ' || encode(h.hash, 'escape') || ', ' || h.file_id) hashes
FROM versions v
INNER JOIN release_channels rc on v.release_channel = rc.id
INNER JOIN game_versions_versions gvv on v.id = gvv.joining_version_id
@@ -578,7 +578,7 @@ impl Version {
v.hashes.unwrap_or(vec![]).into_iter().for_each(|f| {
let hash : Vec<&str> = f.split(", ").collect();
hashes.push((FileId(hash[2].parse().unwrap_or(0)), hash[1].to_string(), hash[0].to_string().into_bytes()));
hashes.push((FileId(hash[2].parse().unwrap_or(0)), hash[0].to_string(), hash[1].to_string().into_bytes()));
});
QueryVersion {