Matthias van de Meent (@[email protected])

279 posts

Matthias van de Meent (@mmeent_pg@fosstodon.org)

Matthias van de Meent (@[email protected])

@mmeent_pg

PostgreSQL hacker @ Neon (@neondatabase) Opinions are my own - ∃RT ¬(RT∈{Endorsements}) Fediverse: @[email protected]

Katılım Ağustos 2022
68 Takip Edilen233 Takipçiler
Fujii Masao
Fujii Masao@fujii_masao·
But with nested statements calling other nested statements, it's unclear what timestamp should be returned or how the function should behave. So maybe it doesn't make sense to support this in core.
English
2
0
0
176
Fujii Masao
Fujii Masao@fujii_masao·
statement_timestamp() returns the start time of the top-level statement, so all nested statements get the same value. To get different ones between nested statements, would it make sense to support the function returning the start time of nested statement?
English
2
0
0
282
Matthias van de Meent (@mmeent_pg@fosstodon.org)
@samokhvalov Mastodon has a default of 500 characters (IIUC, it's configurable per instance). There are also various other implementations of ActivityPub, e.g. Sharkey with 3k chars (Calckey, Misskey) for microblogging, Pixelfed focused on image sharing... And those are just the popular ones.
English
0
0
0
54
Nik Samokhvalov
Nik Samokhvalov@samokhvalov·
Indeed, ppl with middle school mentality are ruling this country now. I'm thinking to join the party - replacing the T logo on my tesla with something interesting. Plenty options on Amazon, like "F ELON" Though most are just simple stickers -- anyone saw something solid, to be a logo replacement?
Nik Samokhvalov tweet media
Senator Mark Kelly@SenMarkKelly

Traitor? Elon, if you don’t understand that defending freedom is a basic tenet of what makes America great and keeps us safe, maybe you should leave it to those of us who do.

English
3
0
2
1.6K
Nik Samokhvalov
Nik Samokhvalov@samokhvalov·
Some lazy @PostgreSQL engineer's tips: - "Postgres", not "PostgreSQL" - "select;" (or just ";"), not "SELECT 1;" - "count(*) filter (where ...)", not "COUNT(CASE WHEN ... THEN 1 ELSE 0 END)" - "create table t();" - "timestamptz" - "group by 1 order by 1"
English
4
4
50
4.5K
Matthias van de Meent (@mmeent_pg@fosstodon.org)
@fujii_masao Could you explain what you mean by "the SQL firewall feature"? That's the first time I've heard of it, and AFAIK not part of ISO 9075 (at least, not clearly from its parts' descriptions).
English
1
0
0
70
Fujii Masao
Fujii Masao@fujii_masao·
I'm just curious—how many people actually use the SQL firewall feature in production to block unexpected queries? 🤔
English
1
0
3
306
Matthias van de Meent (@mmeent_pg@fosstodon.org)
@FranckPachot @MarkCallaghanDB I'm not familiar enough with MySQL's pluggable storage APIs to make comments to that - though it looks like several features in PostgreSQL seem to be implemented above the TableAM abstraction, whereas in MySQL they seem to be pushed down into Pluggable Storage (e.g. FKs)
English
0
0
0
39
Matthias van de Meent (@mmeent_pg@fosstodon.org)
@MarkCallaghanDB But indeed, compressed storage isn't exactly great inside the core PostgreSQL feature set. Extensions usually cover important gaps; that's considered part of the design of the DBMS, not an oversight/missing feature per se. E.g. PostGIS, pgvector, etc.
English
0
0
0
38
Matthias van de Meent (@mmeent_pg@fosstodon.org)
@MarkCallaghanDB There also is (was?) OreoleDB, which did bring its own buffer pool and data storage, but it was a fairly involved fork, not an extension. It broke with most of Postgres' storage model, including its indexing.
English
2
0
1
72
Matthias van de Meent (@mmeent_pg@fosstodon.org)
@MarkCallaghanDB > why not LSM Complexities integrating a new table AM into PG, presumably. Adding a new table AM would require a lot of code, and the current page-based buffers don't work nice with the (presumably) variable but larger than page-sized chunks that are implied by the usage of LSMs.
English
0
0
1
96
Matthias van de Meent (@mmeent_pg@fosstodon.org)
@MarkCallaghanDB > why not MultiThreaded Historical reasons. There is work actively ongoing to get multithreading ready, but it'll take some time yet. Hopefully by PG19 we have the capability, though I think it'll take more time to turn it on by default.
English
2
0
1
103
Matthias van de Meent (@mmeent_pg@fosstodon.org)
So in line with previous years, I plan to travel to #pgconfeu 2025 by train, not by plane. Considering I'm already halfway up the Baltics, I might just go back through Estonia and Finland, taking the long way around the Baltic Sea.
English
0
0
0
117
Matthias van de Meent (@mmeent_pg@fosstodon.org)
🇳🇱>Riga is only 3 travel days by rail from NL (~48h door-to-door for me), with most of that time on the Warsaw-Vilnius-Riga section waiting for daily trains: with the Warsaw-Riga section by bus it's ~23h (but 10h on a bus🙁) @RailBaltica could reduce that to just 18h by 2030
English
1
0
0
192
Matthias van de Meent (@mmeent_pg@fosstodon.org)
@fujii_masao if the xact is still running it may still have open portals (i.e. queries, through cursors) that were started (opened) before the statement that created/updated/deleted the tuple, and may thus need to see the old tuples, even if it updated/deleted them in later statements.
English
0
0
0
25
Matthias van de Meent (@mmeent_pg@fosstodon.org)
@fujii_masao Also note that the same is still true when a tuple's xmin equals its xmax. One might think that's a trivial case of "nobody can see this", but that's only true if the xact has committed or rolled back, because (see next)
English
1
0
0
35
Fujii Masao
Fujii Masao@fujii_masao·
In Read Committed mode, long transactions without an XID don’t block vacuuming of dead tuples, but those with an XID do. It made me wonder—why should a long transaction with an XID prevent vacuuming of dead tuples it didn’t generate? Maybe I'm just confused...😵‍💫
English
2
0
4
1.4K