Huh, I wouldn't have expected that, I guess I'll have to benchmark, thanks!
Though also, if the reasoning for not having binary send/recv is that
the format is not standardized, wouldn't the same apply to the text format?
Or was the text format considered fast enough that binary send/recv is
redundant?

On 4/8/25 17:44, Paul Ramsey wrote:


On Apr 8, 2025, at 8:41 AM, Lukas Panhirsch <lukas.panhir...@senselabs.de> 
wrote:

 From what I understand I'd be prevented from using the BINARY format
though, as it relies on send/recv. The available alternative would be to
use the TEXT format of the raster, which is effectively just the binary
WKB encoded in ASCII HEX. And I'd assume that the bandwidth and

This is the same assume that we held and then discarded back in the day. 
Hexdecoding is cheap cheap cheap. The win of using COPY over INSERT is orders 
of magnitude higher than any overhead from the hex encoding. If you’re worried 
about network bandwidth, connect over SSL which includes a compression layer.

ATB
P

computational overhead of said TEXT form is too high to be more
efficient than simple INSERTs using the binary format+ST_RastFromWKB for
a relatively low amount of rows, though I could be wrong.

Sincerely,
Lukas

On 4/8/25 17:31, Paul Ramsey wrote:
Copy vs insert is legit going to be faster, but that’s not a binary
cursor thing, it’s batching up all the transactions and parsing nicely
into one big bundle as COPY does. You should still be able to do a bulk
copy without using send/recv.

P

On Apr 8, 2025, at 8:30 AM, Lukas Panhirsch
<lukas.panhir...@senselabs.de> wrote:

That makes sense, thank you both.
I believe I've seen some performance improvements with COPY instead of
INSERT for large amounts of vector rows against a PostgreSQL server with
relatively high storage latency, but on the other hand I'm inserting far
fewer rows in the raster case, so I doubt I'd see the same improvement
there.

Sincerely,
Lukas

On 4/8/25 17:18, Paul Ramsey wrote:
Yes this. The utility of the send/recv function are in supporting a
client that is using a binary cursor. This doesn’t even happen much for
vector data anymore (there was a brief period when we all felt it was de
rigeur, and then it got benchmarked and it wasn’t that noticeable at all
as a performance tweak, so everyone stopped, because it added
complexity).

P

On Apr 8, 2025, at 8:15 AM, <l...@pcorp.us> <l...@pcorp.us> wrote:

I think it’s because postgis raster is not an OGC standard or any kind
of standard outside of PostGIS so there hasn’t been much need for it.
For example if you wanted to backup your postgis raster table, you’d
just use standard pg_dump / pg_restore tools.
Most use cases beyond that are importing from a different raster
format or exporting to a different raster format which functions
https://postgis.net/docs/en/RT_ST_FromGDALRaster.html <https://
postgis.net/docs/en/RT_ST_FromGDALRaster.html><https://
postgis.net/docs/en/RT_ST_FromGDALRaster.html <http://postgis.net/
docs/en/RT_ST_FromGDALRaster.html>>
andhttps://postgis.net/docs/en/RT_ST_AsGDALRaster.html <andhttps://
postgis.net/docs/en/RT_ST_AsGDALRaster.html><https://
postgis.net/docs/en/RT_ST_AsGDALRaster.html <http://postgis.net/docs/
en/RT_ST_AsGDALRaster.html>>
as well as the raster2pgsql commandline tool.
*From:*Lukas Panhirsch via postgis-users <postgis-users@lists.osgeo.org 
<mailto:postgis-users@lists.osgeo.org>>
*Sent:*Tuesday, April 8, 2025 9:28 AM
*To:*postgis-users@lists.osgeo.org <mailto:postgis-users@lists.osgeo.org>
*Subject:*Why does the raster type not have send/receive defined?
Hello,

I haven't used this mailing list before and couldn't figure out how to
search in the archives, so I apologize if this has been answered before.

Is there any specific reason why the raster type does not have the
send/receive functions in its SQL type definition?
The geometry type has these defined as conversions to/from EWKB, which
are equivalent to ST_AsEWKB/ST_GeomFromEWKB if I understand correctly.
Equivalent (E?)WKB conversion functions exist for rasters in the form
of (RT_)ST_AsBinary/ST_RastFromWKB, but have to be called explicitly.
I would like to use PostgreSQL features like COPY ... WITH BINARY with
rasters, but it seems this is preventing me from doing so.

Sincerely,

Lukas





Reply via email to