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
|
SELECT item_name FROM items_base GROUP BY item_name HAVING COUNT(*) > 1
|
||||||
) g`);
|
) g`);
|
||||||
|
|
||||||
const DUP_GRP =
|
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";
|
"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`
|
const [cd] = await query<{ c: number }>(sql`
|
||||||
SELECT COUNT(*) c FROM (
|
SELECT COUNT(*) c FROM (
|
||||||
SELECT ${sql.raw(DUP_GRP)} FROM catalog_items
|
SELECT ${sql.raw(catCols)} FROM catalog_items
|
||||||
GROUP BY ${sql.raw(DUP_GRP)} HAVING COUNT(*) > 1
|
GROUP BY ${sql.raw(catCols)} HAVING COUNT(*) > 1
|
||||||
) g`);
|
) g`);
|
||||||
const [cdb] = await query<{ c: number }>(sql`
|
const [cdb] = await query<{ c: number }>(sql`
|
||||||
SELECT COUNT(*) c FROM (
|
SELECT COUNT(*) c FROM (
|
||||||
SELECT ${sql.raw(DUP_GRP)} FROM catalog_items_bc
|
SELECT ${sql.raw(bcCols)} FROM catalog_items_bc
|
||||||
GROUP BY ${sql.raw(DUP_GRP)} HAVING COUNT(*) > 1
|
GROUP BY ${sql.raw(bcCols)} HAVING COUNT(*) > 1
|
||||||
) g`);
|
) g`);
|
||||||
|
|
||||||
const furniData = (await readFurniData()) as Record<
|
const furniData = (await readFurniData()) as Record<
|
||||||
@@ -296,22 +313,25 @@ export async function removeDuplicateItemsBase(): Promise<DedupResult> {
|
|||||||
*/
|
*/
|
||||||
async function dedupCatalogTable(table: string): Promise<number> {
|
async function dedupCatalogTable(table: string): Promise<number> {
|
||||||
if (!(await exists(table))) return 0;
|
if (!(await exists(table))) return 0;
|
||||||
const grp = [
|
const grp =
|
||||||
"page_id",
|
table === "catalog_items_bc"
|
||||||
"item_ids",
|
? ["page_id", "item_ids", "catalog_name", "extradata"]
|
||||||
"catalog_name",
|
: [
|
||||||
"cost_credits",
|
"page_id",
|
||||||
"cost_points",
|
"item_ids",
|
||||||
"points_type",
|
"catalog_name",
|
||||||
"amount",
|
"cost_credits",
|
||||||
"limited_sells",
|
"cost_points",
|
||||||
"limited_stack",
|
"points_type",
|
||||||
"club_only",
|
"amount",
|
||||||
"song_id",
|
"limited_sells",
|
||||||
"have_offer",
|
"limited_stack",
|
||||||
"extradata",
|
"club_only",
|
||||||
"badge",
|
"song_id",
|
||||||
];
|
"have_offer",
|
||||||
|
"extradata",
|
||||||
|
"badge",
|
||||||
|
];
|
||||||
const on = grp.map((c) => `t.${c} <=> d.${c}`).join(" AND ");
|
const on = grp.map((c) => `t.${c} <=> d.${c}`).join(" AND ");
|
||||||
const r = (await db.execute(
|
const r = (await db.execute(
|
||||||
sql.raw(
|
sql.raw(
|
||||||
|
|||||||
Reference in new issue
Block a user