frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Looking Forward to Postgres 19: It's About Time

https://www.pgedge.com/blog/looking-forward-to-postgres-19-its-about-time
44•xngbuilds•1h ago

Comments

munk-a•46m ago
It can be super ugly to try and hand-manage date time range manipulation in a system with moving parts. It is, of course, possible, but it's a headache to try and pull it off when there is complex business logic focused on those datetimes and interactions between ranges. The period constraint is an excellent tool for trivially guaranteeing range coverage (in a case where, for instance, a customer is known to be active from a to b it helps ensure that there aren't any gaps created during the juggling of different sub-ranges) while the new DELETE FOR PERIOD OF syntax makes manipulating swathes of history (I don't care what was happening here this interval should now be X) much more trivial than before.
bhaak•37m ago
I remember reading about this feature for Oracle in the 2000s and was always interested to use it in a production environment.

It never came to pass when we used Oracle, maybe now with Postgres I will finally have a chance at it.

larsnystrom•30m ago
Why are they storing a time period (start and end date) in the first example? Why not just store the date when the price comes into effect? That would make both overlaps and time travel impossible without using any constraints.
quotemstr•26m ago
It's a trade-off. If you store both endpoints (as Postgres does) you can continue to think of rows as order-invariant tuples. If you store only one endpoint you have to impose a meaningful order on the rows in order for them to make sense.
larsnystrom•13m ago
Sure, from a theoretical perspective, but in practice there’s got to be some sort of order at some point even when storing timespans.
throwaway7783•25m ago
Works when there is always an active price. Having an explicit end date allows certain rows to be inactive automatically after validity period. Think of seasonal categories/products etc which dont exist after a specific period
larsnystrom•15m ago
You could also make the price column nullable and just insert a row with price null and the date from which there should be no price.
promano•8m ago
And even if you don't have seasonal products, you still need an end date to mark when you stop selling a product; otherwise you have to do something hacky like defining "<price> = NULL means we stopped selling the product after <valid_from>" and inserting an extra record.

I think the end date should be nullable though, but valid_to is NOT NULL in the starting example... later in the article, when showing the "new way" using date ranges, it inserts a row with an open-ended range, which is more what I'd expect.

evdubs•29m ago
> Recently, a new type of question has entered the database arena: what did this data look like last Tuesday?

This question has been answerable in Dolt for years now.

quotemstr•23m ago
This kind of DB isn't really answering this question. There's a lot more subtlety to time-span analysis than snapshotting. In particular, aligning two series is non-obvious.

Say you have one time series with CPU-core task switches:

T=1 task=A T=3, task=B, T=5 task=A, ...

... and another of CPU frequency changes ...

T=2 freq_hz=800, T=5 freq_hz=1200, T=6 freq_hz=900

How, in SQL, do you express the question "How many CPU cycles did each task use?"? Try to do it with more complex examples. You'll tear your hair out.

Having worked on this sort of data analysis quite a lot, I'm strongly of the opinion that SQL needs syntax, not just table-valued functions, for expressing questions about timelines.

evdubs•19m ago
The cool thing about Dolt is that you [eventually] get the features of the databases (MySQL, PostgreSQL, SQLite, MongoDB) they emulate, so you can have your PG 19 temporality features as well as branching and merging.
quotemstr•18m ago
Yep. I'm just pointing out that the problems Dolt solves are different from the problems a timeline-aware SQL algebra solves.
quotemstr•27m ago
Great! I've been wanting native time-based tables for ages. Years and years ago, I even wrote my own DB engine to get them!

See https://dancol.org/dctv/index.xml

I still think there's a lot of value in first-class syntax for time queries. Splitting ranges like Postgres 19 does is a good first step, but there's also a lot of power in broadcasting over these ranges, combining them in various ways, and storing multiple, independent ranges in a single table.

Ignore the bit about active development: these days, it'd take more sense to add the operators I describe to Postgres and DuckDB than to make a numpy-based engine just to host the analysis. This work predates DuckDB, and it's reassuring that DuckDB (and now Postgres) are thinking along similar lines.

I'm also glad that in the intervening years "data lake"-style analysis has become more prominent. My ideal data processing pipeline consists of sourcing from raw data and pipelining views all the way to human-meaningful outputs. Materialization, if it occurs, is just an optimization.

IgorPartola•10m ago
This is something that is incredibly useful. I built a system like this a while back that also adds versioning to each time period. The use case is this: let’s say you are tracking your state’s sales tax rate. You do not control this and data entry is manual so it is error prone. The rate is updated typically annually but sometimes more frequently.

Let’s say for 2026 you have it at 7.25% and you entered that into the system ahead of time (say December 2025). Today, June 12 you learn that it should have been 7.35%. It would be incorrect to say that the rate changed today: it was 7.35% since January 1. But you also don’t want to lose the fact that all your invoices have been generated using the wrong rate because if you go to recalculate them you will get a different answer.

In this case what you do is create version 2 of the rate in your database with the same time period but the correct rate. This would allow your other database objects to reference either version 1 or 2 and to even recalculate all the objects that reference version 1 to now reference version 2 such that you can get line item corrections and figure out what to do about them.

It is cumbersome to use but for the specific use case of modeling real world laws that are not available as machine-readable info it is the best option I came up with.

Ask HN: What happens when AI-voice becomes good enough?

1•boa00•3m ago•0 comments

Over 900 Arch Linux Packages Infected with infostealers and rootkits

https://lists.archlinux.org/archives/list/aur-general@lists.archlinux.org/thread/FGXPCB3ZVCJIV7FX...
2•fortran77•6m ago•0 comments

Scarab Field Lab – public case records for software drift diagnostics

https://github.com/scarab-systems/scarab-field-lab
1•scarabsystems•7m ago•0 comments

Show HN: Vilvona AI – Self-Hosted AI Assistant with Tamil and Hindi UI

https://github.com/vignesh2027/Vilvona-AI
1•deepscalelabs•7m ago•0 comments

Ramp SWE-Bench a private contamination-free benchmark from production work

https://labs.ramp.com/swebench
1•turadg•7m ago•0 comments

Ask HN: How would you get your first user who is a stranger?

1•bnova•8m ago•0 comments

Show HN: Metro Match – compare 18 world metro systems as playable stat cards

https://ajin.im/is/building/metro-match/
1•poppypetalmask•9m ago•0 comments

The Data-Center Panic Is Overblown

https://www.theatlantic.com/ideas/2026/06/ai-data-center-electricity-water/687521/
3•littlexsparkee•9m ago•0 comments

Patching Won't Save You

https://www.siderolabs.com/blog/patching-wont-save-you
3•aweiher•12m ago•0 comments

Based on Your Digital Profile (Short Story)

https://arkvis.com/blog/2026-06-09_based-on-your-profile.html
1•phyzix5761•12m ago•0 comments

Cosmodial Sky Atlas

https://killedbyapixel.github.io/Cosmodial/
3•memalign•13m ago•0 comments

I Gave ChatGPT a Body [video]

https://www.youtube.com/watch?v=S67z2aekBrI
1•gmays•15m ago•0 comments

The Measured Listener

https://lareviewofbooks.org/article/music-algorithm-spotify-eugenics-measure-talent-raymond-cattell/
1•cainxinth•16m ago•0 comments

Amusing Numerology: How Base-5 Domain Numbers Reveal a Single Hidden Campaign

https://www.infoblox.com/blog/security/amusing-numerology-analysis-of-the-numbers-in-domain-names/
1•speckx•17m ago•0 comments

TCS and Anthropic partner to bring Claude to regulated industries

https://www.anthropic.com/news/tcs-anthropic-partnership
2•surprisetalk•18m ago•0 comments

Most Beautiful Will Ever Made (1936)

https://paperspast.natlib.govt.nz/newspapers/DOM19360307.2.43
2•cf100clunk•18m ago•0 comments

Fail loudly: a plea to stop hiding bugs

https://alejo.ch/3gk
2•afc•19m ago•0 comments

Elon Musk becomes first trillionaire as SpaceX shares soar

https://www.bbc.com/news/live/czj8dd0kyl7t
4•bazzmt•19m ago•0 comments

Prompting Claude Fable 5

https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-fable-5
3•mfiguiere•21m ago•0 comments

Donor Scraper for Fairfax Cryobank

https://github.com/tgys/cryobankscraper
1•autocatt•22m ago•0 comments

The Lorem Ipsum Mystery [video]

https://www.youtube.com/watch?v=kL1PDqzqhM4
1•dsr12•22m ago•0 comments

China's Deadly "Bubble Face" Disaster [video][14 Mins]

https://www.youtube.com/watch?v=yMk1OSSAW28
1•Bender•23m ago•0 comments

UK to ban under-16s from 'high risk' social media apps

https://www.theguardian.com/uk-news/2026/jun/12/uk-to-ban-under-16s-from-high-risk-social-media-apps
1•kefabean•25m ago•0 comments

Ask HN: Why is the term forward deployed engineer (FDE) popular all of a sudden?

3•palidanx•27m ago•4 comments

Are Americans Too Old?

https://www.newyorker.com/culture/open-questions/are-americans-too-old
3•littlexsparkee•27m ago•2 comments

New GreatXML Exploit Bypasses Windows BitLocker via Recovery Partition XML Files

https://github.com/MSNightmare/GreatXML
3•uukelele•28m ago•0 comments

SealedKeys – Zero-knowledge team password manager with post-quantum crypto

https://sealedkeys.com
1•michaelgartlan•28m ago•0 comments

Shares in Elon Musk's SpaceX surge after biggest IPO

https://www.reuters.com/world/us/live-elon-musks-spacex-set-stock-market-trading-after-worlds-big...
2•layer8•28m ago•0 comments

Ten Years of Having a Personal Website

https://blog.greenpants.net/ten-years-of-personal-websites-from-student-to-senior/
2•Greenpants•29m ago•0 comments

System Call Stack Alignment

https://www.humprog.org/~stephen/blog/2026/06/12/#system-calling-alignment
2•matt_d•34m ago•0 comments