Re: Transparent column encryption - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: Transparent column encryption
Date
Msg-id b465fd70-a988-66b8-3c87-bacab1bf6dd7@enterprisedb.com
Whole thread Raw
In response to Re: Transparent column encryption  (Mark Dilger <mark.dilger@enterprisedb.com>)
List pgsql-hackers
On 11.03.23 19:08, Mark Dilger wrote:
> CEKIsVisible() and CMKIsVisible() are obviously copied from TSParserIsVisible(), and the code comments weren't fully
updated. Specifically, the phrase "hidden by another parser of the same name" should be updated to not mention
"parser".

fixed

> 
> Why does get_cmkalg_name() return the string "unspecified" for PG_CMK_UNSPECIFIED, but the next function
get_cmkalg_jwa_name()returns NULL for PG_CMK_UNSPECIFIED?  It seems they would both return NULL, or both return
"unspecified". If there's a reason for the divergence, could you add a code comment to clarify?
 

Added a comment.

> BTW, get_cmkalg_jwa_name() has no test coverage.

Ok, I'll look into it.

> Looking further at code coverage, the new conditional in printsimple_startup() is never tested with
(MyProcPort->column_encryption_enabled),so the block is never entered.  This would seem to be a consequence of backends
likewalsender not using column encryption, which is not terribly surprising, but it got me wondering if you had a
particularclient use case in mind when you added this block?
 

AFAICT, the relationship between printsimple.c and the replicaton 
protocol is not actually firmly defined anywhere, it just happens that 
they are used together.  So I feel the column encryption mode needs to 
be supported, technically, even if nothing is using it right now.

> The new function pg_encrypted_in() appears totally untested, but I have to wonder if that's because we're not
round-triptesting pg_dump with column encryption...?  The code coverage in pg_dump looks fairly decent, but some column
encryptioncode is not covered.
 

I have added test coverage for pg_encrypted_in() (via a COPY round-trip 
test in under src/test/column_encryption), as well as additional 
coverage in pg_dump and some DDL commands.  I didn't find any obvious 
gaps in test coverage elsewhere.
Attachment

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: meson: Non-feature feature options
Next
From: Tomas Vondra
Date:
Subject: Re: Add LZ4 compression in pg_dump