From 54559a6e91a63a3fa76363a31f014f92e14cf0b6 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Sun, 29 Mar 2026 21:12:18 -0400 Subject: [PATCH] schema: change community_rating to DOUBLE PRECISION for simpler type mapping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change community_rating from DECIMAL(3,1) to DOUBLE PRECISION to: - Eliminate awkward pgtype.Numeric conversion in Go code - Enable direct pgtype.Float8 mapping from ComicInfo.xml float64 - Simplify code by matching natural types (XML float64 → PostgreSQL DOUBLE PRECISION → Go pgtype.Float8) - Remove need for string formatting and Scan() method calls The floating-point precision error (< 0.00001%) is negligible for 0-10 rating scale. This simplifies Phase 4 implementation significantly. Column comment updated to reflect DOUBLE PRECISION type. Relates to: Phase 1 database schema changes for comic metadata support --- database/schema/schema.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/database/schema/schema.sql b/database/schema/schema.sql index 1a961c0..8a6397f 100644 --- a/database/schema/schema.sql +++ b/database/schema/schema.sql @@ -156,7 +156,7 @@ CREATE TABLE IF NOT EXISTS media_items ( -- Additional metadata (applies to all formats) metadata_notes TEXT, -- Notes from metadata files (ComicInfo.xml, EPUB, PDF) - distinct from user notes - community_rating DECIMAL(3,1), -- Pre-existing community rating from metadata (0.0-10.0) - distinct from user ratings + community_rating DOUBLE PRECISION, -- Pre-existing community rating from metadata (0.0-10.0) - distinct from user ratings -- Alternate series information (JSONB for flexible schema - comic-specific) alternate_info JSONB, -- Stores AlternateSeries, AlternateNumber, AlternateCount @@ -567,7 +567,7 @@ COMMENT ON COLUMN media_items.web_url IS 'URL to info page (Goodreads, ComicVine -- Additional metadata (applies to all formats) COMMENT ON COLUMN media_items.metadata_notes IS 'Notes from metadata files (ComicInfo.xml, EPUB, PDF) - distinct from user notes in media_notes table'; -COMMENT ON COLUMN media_items.community_rating IS 'Pre-existing community rating from metadata files (scale 0.0-10.0) - distinct from user ratings in media_ratings table'; +COMMENT ON COLUMN media_items.community_rating IS 'Pre-existing community rating from metadata files (scale 0.0-10.0, DOUBLE PRECISION) - distinct from user ratings in media_ratings table'; COMMENT ON COLUMN media_items.summary IS 'Summary from ComicInfo.xml (may be merged with description from Calibre)'; -- Library Type File Extensions Notes: