79585256

Date: 2025-04-21 20:13:31
Score: 3.5
Natty:
Report link

IN response to @Adrian, the following is taken directly from a running instance of our v2 release that uses a Postgres server:

comixed=# \d+ displayable_comics_view
                                  View "public.displayable_comics_view"
        Column         |          Type          | Collation | Nullable | Default | Storage  | Description
-----------------------+------------------------+-----------+----------+---------+----------+-------------
 comic_book_id         | bigint                 |           |          |         | plain    |
 comic_detail_id       | bigint                 |           |          |         | plain    |
 archive_type          | character varying(4)   |           |          |         | extended |
 comic_state           | character varying(64)  |           |          |         | extended |
 is_unscraped          | boolean                |           |          |         | plain    |
 comic_type            | character varying(32)  |           |          |         | extended |
 publisher             | character varying(255) |           |          |         | extended |
 series                | character varying(255) |           |          |         | extended |
 volume                | character varying(4)   |           |          |         | extended |
 issue_number          | character varying(16)  |           |          |         | extended |
 sortable_issue_number | text                   |           |          |         | extended |
 title                 | character varying(255) |           |          |         | extended |
 page_count            | bigint                 |           |          |         | plain    |
 cover_date            | date                   |           |          |         | plain    |
 month_published       | integer                |           |          |         | plain    |
 year_published        | integer                |           |          |         | plain    |
 store_date            | date                   |           |          |         | plain    |
 added_date            | date                   |           |          |         | plain    |
View definition:
 SELECT DISTINCT d.comic_book_id,
    d.id AS comic_detail_id,
    d.archive_type,
    d.comic_state,
        CASE
            WHEN (EXISTS ( SELECT s.id,
                s.comic_book_id,
                s.metadata_source_id,
                s.reference_id
               FROM comic_metadata_sources s
              WHERE s.comic_book_id = d.comic_book_id)) THEN false
            ELSE true
        END AS is_unscraped,
    d.comic_type,
    d.publisher,
    d.series,
    d.volume,
    d.issue_number,
    ( SELECT "right"(concat('0000000000', d.issue_number), 10) AS "right") AS sortable_issue_number,
    d.title,
    ( SELECT count(*) AS count
           FROM comic_pages cp
          WHERE cp.comic_book_id = d.comic_book_id) AS page_count,
    d.cover_date,
        CASE
            WHEN d.cover_date IS NULL THEN 0
            ELSE month(d.cover_date)
        END AS month_published,
        CASE
            WHEN d.cover_date IS NULL THEN 0
            ELSE year(d.cover_date)
        END AS year_published,
    d.store_date,
    d.added_date
   FROM comic_details d;



comixed=# select * from displayable_comics_view limit 5;
 comic_book_id | comic_detail_id | archive_type | comic_state | is_unscraped | comic_type | publisher |          series          | volume | issue_number | sortable_issue_number |               title               | page_count | cover_date | month_published | year_published | store_date | added_date
---------------+-----------------+--------------+-------------+--------------+------------+-----------+--------------------------+--------+--------------+-----------------------+-----------------------------------+------------+------------+-----------------+----------------+------------+------------
         34944 |           34944 | CBZ          | STABLE      | f            | ISSUE      | Ablaze    | Lovecraft Unknown Kadath | 2022   | 1            | 0000000001            | Episode 1: Dylath-Leen            |         36 | 2022-09-13 |               9 |           2022 | 2022-09-13 | 2025-03-08
         34945 |           34945 | CBZ          | STABLE      | f            | ISSUE      | Ablaze    | Lovecraft Unknown Kadath | 2022   | 2            | 0000000002            | Episode 2: Mount Ngranek          |         35 | 2022-10-29 |              10 |           2022 | 2022-10-25 | 2025-03-08
         34946 |           34946 | CBZ          | STABLE      | f            | ISSUE      | Ablaze    | Lovecraft Unknown Kadath | 2022   | 3            | 0000000003            | Episode 3: In the Valley of Pnoth |         34 | 2022-11-24 |              11 |           2022 | 2022-11-22 | 2025-03-08
         34947 |           34947 | CBZ          | STABLE      | f            | ISSUE      | Ablaze    | Lovecraft Unknown Kadath | 2022   | 4            | 0000000004            | Episode 4: The Tower of Koth      |         36 | 2022-12-15 |              12 |           2022 | 2022-12-13 | 2025-03-08
         34948 |           34948 | CBZ          | STABLE      | f            | ISSUE      | Ablaze    | Lovecraft Unknown Kadath | 2022   | 5            | 0000000005            | Episode 5: Celephais              |         36 | 2023-01-23 |               1 |           2023 | 2023-01-24 | 2025-03-08
(5 rows)

If Postgres doesn't have a month() or year() method, then how do the above work?

Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • Ends in question mark (2):
  • User mentioned (1): @Adrian
  • Self-answer (0.5):
  • Looks like a comment (1):
  • Low reputation (0.5):
Posted by: mcpierce