Postgres. Generate continuous series for multiple categories
You can use generate_series() function:

select
    d.d::date as date, 
    t.update_date,  
    t.category_1, 
    t.category_2,
    t.value
from 
    t, 
    generate_series(start_date, end_date, interval '1 day') as d(d) ;


It works basically by taking each row from t and producing a set of rows, one for each day from start_date up to (and including) end_date.

Test at dbfiddle.uk