Fix catalog_items_bc dedup/health: use its actual schema (no cost columns)
This commit is contained in:
1 parent
34475e9bc2
commit
2b7b445b73
1 file changed
+42
-22
@@ -130,17 +130,34 @@ export async function getFurniHealth(): Promise<FurniHealth> {
|
||||
SELECT item_name FROM items_base GROUP BY item_name HAVING COUNT(*) > 1
|
||||
) g`);
|
||||
|
||||
const DUP_GRP =
|
||||
"page_id,item_ids,catalog_name,cost_credits,cost_points,points_type,amount,limited_sells,limited_stack,club_only,song_id,have_offer,extradata,badge";
|
||||
const CAT_DUP_COLS = [
|
||||
"page_id",
|
||||
"item_ids",
|
||||
"catalog_name",
|
||||
"cost_credits",
|
||||
"cost_points",
|
||||
"points_type",
|
||||
"amount",
|
||||
"limited_sells",
|
||||
"limited_stack",
|
||||
"club_only",
|
||||
"song_id",
|
||||
"have_offer",
|
||||
"extradata",
|
||||
"badge",
|
||||
];
|
||||
const BC_DUP_COLS = ["page_id", "item_ids", "catalog_name", "extradata"];
|
||||
const catCols = CAT_DUP_COLS.join(",");
|
||||
const bcCols = BC_DUP_COLS.join(",");
|
||||
const [cd] = await query<{ c: number }>(sql`
|
||||
SELECT COUNT(*) c FROM (
|
||||
SELECT ${sql.raw(DUP_GRP)} FROM catalog_items
|
||||
GROUP BY ${sql.raw(DUP_GRP)} HAVING COUNT(*) > 1
|
||||
SELECT ${sql.raw(catCols)} FROM catalog_items
|
||||
GROUP BY ${sql.raw(catCols)} HAVING COUNT(*) > 1
|
||||
) g`);
|
||||
const [cdb] = await query<{ c: number }>(sql`
|
||||
SELECT COUNT(*) c FROM (
|
||||
SELECT ${sql.raw(DUP_GRP)} FROM catalog_items_bc
|
||||
GROUP BY ${sql.raw(DUP_GRP)} HAVING COUNT(*) > 1
|
||||
SELECT ${sql.raw(bcCols)} FROM catalog_items_bc
|
||||
GROUP BY ${sql.raw(bcCols)} HAVING COUNT(*) > 1
|
||||
) g`);
|
||||
|
||||
const furniData = (await readFurniData()) as Record<
|
||||
@@ -296,22 +313,25 @@ export async function removeDuplicateItemsBase(): Promise<DedupResult> {
|
||||
*/
|
||||
async function dedupCatalogTable(table: string): Promise<number> {
|
||||
if (!(await exists(table))) return 0;
|
||||
const grp = [
|
||||
"page_id",
|
||||
"item_ids",
|
||||
"catalog_name",
|
||||
"cost_credits",
|
||||
"cost_points",
|
||||
"points_type",
|
||||
"amount",
|
||||
"limited_sells",
|
||||
"limited_stack",
|
||||
"club_only",
|
||||
"song_id",
|
||||
"have_offer",
|
||||
"extradata",
|
||||
"badge",
|
||||
];
|
||||
const grp =
|
||||
table === "catalog_items_bc"
|
||||
? ["page_id", "item_ids", "catalog_name", "extradata"]
|
||||
: [
|
||||
"page_id",
|
||||
"item_ids",
|
||||
"catalog_name",
|
||||
"cost_credits",
|
||||
"cost_points",
|
||||
"points_type",
|
||||
"amount",
|
||||
"limited_sells",
|
||||
"limited_stack",
|
||||
"club_only",
|
||||
"song_id",
|
||||
"have_offer",
|
||||
"extradata",
|
||||
"badge",
|
||||
];
|
||||
const on = grp.map((c) => `t.${c} <=> d.${c}`).join(" AND ");
|
||||
const r = (await db.execute(
|
||||
sql.raw(
|
||||
|
||||
Reference in new issue
Block a user