Re: Request for comment on setting binary format output per session
Jeff Davis <pgsql@j-davis.com>
From: Jeff Davis <pgsql@j-davis.com>
To: Merlin Moncure <mmoncure@gmail.com>
Cc: Dave Cramer <davecramer@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-03-25T22:35:50Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Silence compiler warning introduced in 1edb3b491b
- fba2112b1569 17.0 cited
On Fri, 2023-03-24 at 07:52 -0500, Merlin Moncure wrote: > I think so. Dave's idea puts a lot of flexibility into the client > side, and that's good. Search path mechanics are really well > understood and well integrated with extensions already (create > extension ..schema) assuming that the precise time UDT are looked up > in an unqualified way is very clear to- or invoked via- the client > code. I'll say it again though; OIDs really ought to be considered a > transient cache of type information rather than a > permanent identifier. I'm not clear on what proposal you are making and/or endorising? > Regarding UDT, lots of common and useful scenarios (containers, enum, > range, etc), do not require special knowledge to parse beyond the > kind of type it is. Automatic type creation from tables is one of > the most genius things about postgres and directly wiring client > structures to them through binary is really nifty. Perhaps not special knowledge, but you need to know the structure. If you have a query like "SELECT '...'::sometable", you still need to know the structure of sometable to parse it. > This undermines the case that binary parsing requires special > knowledge IMO, UDT might in fact be the main long term target...I > could see scenarios where java classes might be glued directly to > postgres tables by the driver...this would be a lot more efficient > than using json which is how everyone does it today. Then again, > maybe *I* might be overthinking this. Wouldn't that only work if someone is doing a "SELECT *"? Regards, Jeff Davis