Re: SQL Property Graph Queries (SQL/PGQ)
Peter Eisentraut <peter@eisentraut.org>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix some typos and make small stylistic improvements
- 5282bf535e47 19 (unreleased) landed
-
Cleanup users and roles in graph_table_rls test
- 040a56be4bcc 19 (unreleased) landed
-
Dump labels in reproducible order
- c9babbc8816a 19 (unreleased) landed
-
SQL Property Graph Queries (SQL/PGQ)
- 2f094e7ac691 19 (unreleased) landed
-
Factor out constructSetOpTargetlist() from transformSetOperationTree()
- 8c2b30487cc7 19 (unreleased) landed
-
Sort out table_open vs. relation_open in rewriter
- d537f59fbbfc 19 (unreleased) landed
-
Rename grammar nonterminal to simplify reuse
- 8080f44f96a9 19 (unreleased) landed
-
Make ecpg parse.pl more robust with braces
- 7f88553ceaca 19 (unreleased) landed
-
Don't lock partitions pruned by initial pruning
- 525392d5727f 18.0 cited
-
Remove pg_regex_collation
- 792b2c7e6d92 18.0 cited
-
Use auxv to check for CRC32 instructions on ARM.
- aac831cafa6f 18.0 cited
-
Fix inappropriate uses of atol()
- f5a1311fccd2 18.0 cited
-
Remove unnecessary array object_classes[] in dependency.c
- ef5e2e90859a 17.0 cited
I have browsed this patch set a bit to get myself up to date. General thoughts: This is a large patch set, and it's not going to be perfect at the first try. Especially, some of the parsing rules, query semantics, that kind of thing. So I'm thinking that we should aim at integrating this with an understanding that it would be somewhat experimental, and then iterate on some of the details in the tree. Obviously, that would still require that the overall architecture is ok, that it doesn't crash, that it satisfies security requirements. Also, it should as much as possible follow the "if you don't use it, it doesn't affect you" rule. So I'm specifically looking at where the patch intersects with existing code in critical ways, especially in parse analysis. I want to spend more time reviewing that in particular. Much of the rest of patch is almost-boilerplate: New DDL commands, new catalogs, associated tests and documentation. It looks a lot, but most of it is not very surprising. I found two areas where a bit more work could be done to separate the new code from existing code: src/backend/utils/cache/inval.c: This looks suspicious. The existing code only deals with very fundamental catalogs such as pg_class and pg_index. It doesn't feel right to hardcode additional arguably very high-level PGQ-related catalogs there. We should think of a different approach here. src/test/regress/sql/rowsecurity.sql: I think it would be better to separate the new test cases into a separate file. This test file is already large and complicated, and sprinkling a bunch of more stuff all over the place is going to make review and maintenance more complicated. We also need to make sure that property graphs have security features equivalent to views. For example, I suspect we need to integrate them with restrict_nonsystem_relation_kind. There might be other similar things, to be checked.