Postgres Large Object Support
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 1.7k
- Forks
- 175
- Avg merge
- 5d 14h
- Merged PRs (30d)
- 9
Description
Some existing codebases are already leveraging large object support with doobie. As this is the successor we were trying to figure out how we could get this. Bytea is likely capable of containing our use case, but wanted to capture this in case someone wanted to resolve it in the future.
The large-object thing is some server-side functions that let you manipulate chunks.
It's not part of the protocol, it's a userland thing.
But the C driver creates a fiction on top of this, as does the JDBC driver.
Which is to say, it will work with Skunk but you'll need to do a bunch of stuff by hand. A userland thing could be built up for it.
But how large are your objects? Is it clear that a normal bytea won't work?
It does give you the ability to stream stuff in and out though, which seems useful. Probably wouldn't be that hard to implement.
Something like
createLargeObject: F[(Oid, Sink[F,Byte])]and thenreadLargeObject(oid, chunksize): Stream[F,Byte])would cover most cases.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named. First compare whether PostgreSQL bytea meets the intended object sizes and streaming needs, then review how Skunk could expose the server-side large-object functions; done should include a defined scope and an agreed API such as the create and read operations suggested in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- postgresql, scala
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100