pgsql: Improve memory management and performance of tuplestore.c

2024-07-04 Thread David Rowley
Improve memory management and performance of tuplestore.c Here we make tuplestore.c use a generation.c memory context rather than allocating tuples into the CurrentMemoryContext, which primarily is the ExecutorState or PortalHoldContext memory context. Not having a dedicated context can cause the

pgsql: Fix newly introduced issue in EXPLAIN for Materialize nodes

2024-07-04 Thread David Rowley
Fix newly introduced issue in EXPLAIN for Materialize nodes The code added in 1eff8279d was lacking a check to see if the tuplestore had been created. In nodeMaterial.c this is done by ExecMaterial() rather than by ExecInitMaterial(), so the tuplestore won't be created unless the node has been ex

pgsql: Add simple codepoint redirections to unaccent.rules.

2024-07-04 Thread Thomas Munro
Add simple codepoint redirections to unaccent.rules. Previously we searched for code points where the Unicode data file listed an equivalent combining character sequence that added accents. Some codepoints redirect to a single other codepoint, instead of doing any combining. We can follow those r

pgsql: Add memory/disk usage for Material nodes in EXPLAIN

2024-07-04 Thread David Rowley
Add memory/disk usage for Material nodes in EXPLAIN Up until now, there was no ability to easily determine if a Material node caused the underlying tuplestore to spill to disk or even see how much memory the tuplestore used if it didn't. Here we add some new functions to tuplestore.c to query thi

pgsql: Support "Right Semi Join" plan shapes

2024-07-04 Thread Richard Guo
Support "Right Semi Join" plan shapes Hash joins can support semijoin with the LHS input on the right, using the existing logic for inner join, combined with the assurance that only the first match for each inner tuple is considered, which can be achieved by leveraging the HEAP_TUPLE_HAS_MATCH fla

Re: pgsql: Add pg_get_acl() to get the ACL for a database object

2024-07-04 Thread Joel Jacobson
On Thu, Jul 4, 2024, at 17:44, Tom Lane wrote: > Michael Paquier writes: >> Add pg_get_acl() to get the ACL for a database object >> This function returns the ACL for a database object, specified by >> catalog OID and object OID. > > Uh, why is it defined like that rather than allowing a subobject

pgsql: Doc: small improvements in discussion of geometric data types.

2024-07-04 Thread Tom Lane
Doc: small improvements in discussion of geometric data types. State explicitly that the coordinates in our geometric data types are float8. Also explain that polygons store their bounding box. While here, fix the table of geometric data types to show type "line"'s size correctly: it's 24 bytes

pgsql: Doc: small improvements in discussion of geometric data types.

2024-07-04 Thread Tom Lane
Doc: small improvements in discussion of geometric data types. State explicitly that the coordinates in our geometric data types are float8. Also explain that polygons store their bounding box. While here, fix the table of geometric data types to show type "line"'s size correctly: it's 24 bytes

pgsql: Doc: small improvements in discussion of geometric data types.

2024-07-04 Thread Tom Lane
Doc: small improvements in discussion of geometric data types. State explicitly that the coordinates in our geometric data types are float8. Also explain that polygons store their bounding box. While here, fix the table of geometric data types to show type "line"'s size correctly: it's 24 bytes

pgsql: Doc: small improvements in discussion of geometric data types.

2024-07-04 Thread Tom Lane
Doc: small improvements in discussion of geometric data types. State explicitly that the coordinates in our geometric data types are float8. Also explain that polygons store their bounding box. While here, fix the table of geometric data types to show type "line"'s size correctly: it's 24 bytes

pgsql: Doc: small improvements in discussion of geometric data types.

2024-07-04 Thread Tom Lane
Doc: small improvements in discussion of geometric data types. State explicitly that the coordinates in our geometric data types are float8. Also explain that polygons store their bounding box. While here, fix the table of geometric data types to show type "line"'s size correctly: it's 24 bytes

pgsql: Doc: small improvements in discussion of geometric data types.

2024-07-04 Thread Tom Lane
Doc: small improvements in discussion of geometric data types. State explicitly that the coordinates in our geometric data types are float8. Also explain that polygons store their bounding box. While here, fix the table of geometric data types to show type "line"'s size correctly: it's 24 bytes

pgsql: Doc: small improvements in discussion of geometric data types.

2024-07-04 Thread Tom Lane
Doc: small improvements in discussion of geometric data types. State explicitly that the coordinates in our geometric data types are float8. Also explain that polygons store their bounding box. While here, fix the table of geometric data types to show type "line"'s size correctly: it's 24 bytes

Re: pgsql: Add pg_get_acl() to get the ACL for a database object

2024-07-04 Thread Tom Lane
Michael Paquier writes: > Add pg_get_acl() to get the ACL for a database object > This function returns the ACL for a database object, specified by > catalog OID and object OID. Uh, why is it defined like that rather than allowing a subobject? This definition is unable to fetch column-specific AC

pgsql: Fix copy/paste mistake in comment

2024-07-04 Thread Alvaro Herrera
Fix copy/paste mistake in comment Backpatch to 17 Author: Yugo NAGATA Discussion: https://postgr.es/m/20240704134638.355ad44a445fa1e764a22...@sranhm.sraoss.co.jp Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/2ef575c7803a55101352c0f6cb8f745af063a66c Modified Fi

pgsql: Fix copy/paste mistake in comment

2024-07-04 Thread Alvaro Herrera
Fix copy/paste mistake in comment Backpatch to 17 Author: Yugo NAGATA Discussion: https://postgr.es/m/20240704134638.355ad44a445fa1e764a22...@sranhm.sraoss.co.jp Branch -- REL_17_STABLE Details --- https://git.postgresql.org/pg/commitdiff/e72f841cbec12b60dbfcde6e4aaeec8ecab987c4 Modi

pgsql: Remove bogus assertion in pg_atomic_monotonic_advance_u64

2024-07-04 Thread Alvaro Herrera
Remove bogus assertion in pg_atomic_monotonic_advance_u64 This code wanted to ensure that the 'exchange' variable passed to pg_atomic_compare_exchange_u64 has correct alignment, but apparently platforms don't actually require anything that doesn't come naturally. While messing with pg_atomic_mono

pgsql: Remove bogus assertion in pg_atomic_monotonic_advance_u64

2024-07-04 Thread Alvaro Herrera
Remove bogus assertion in pg_atomic_monotonic_advance_u64 This code wanted to ensure that the 'exchange' variable passed to pg_atomic_compare_exchange_u64 has correct alignment, but apparently platforms don't actually require anything that doesn't come naturally. While messing with pg_atomic_mono

pgsql: doc: Specify when ssl_prefer_server_ciphers was added

2024-07-04 Thread Daniel Gustafsson
doc: Specify when ssl_prefer_server_ciphers was added The ssl_prefer_server_ciphers setting is quite important from a security point of view, so simply stating that older versions doesn't have it isn't very helpful. This adds the version when the GUC was added to help readers. Backpatch to all s

pgsql: doc: Specify when ssl_prefer_server_ciphers was added

2024-07-04 Thread Daniel Gustafsson
doc: Specify when ssl_prefer_server_ciphers was added The ssl_prefer_server_ciphers setting is quite important from a security point of view, so simply stating that older versions doesn't have it isn't very helpful. This adds the version when the GUC was added to help readers. Backpatch to all s

pgsql: doc: Specify when ssl_prefer_server_ciphers was added

2024-07-04 Thread Daniel Gustafsson
doc: Specify when ssl_prefer_server_ciphers was added The ssl_prefer_server_ciphers setting is quite important from a security point of view, so simply stating that older versions doesn't have it isn't very helpful. This adds the version when the GUC was added to help readers. Backpatch to all s

pgsql: doc: Specify when ssl_prefer_server_ciphers was added

2024-07-04 Thread Daniel Gustafsson
doc: Specify when ssl_prefer_server_ciphers was added The ssl_prefer_server_ciphers setting is quite important from a security point of view, so simply stating that older versions doesn't have it isn't very helpful. This adds the version when the GUC was added to help readers. Backpatch to all s

pgsql: doc: Specify when ssl_prefer_server_ciphers was added

2024-07-04 Thread Daniel Gustafsson
doc: Specify when ssl_prefer_server_ciphers was added The ssl_prefer_server_ciphers setting is quite important from a security point of view, so simply stating that older versions doesn't have it isn't very helpful. This adds the version when the GUC was added to help readers. Backpatch to all s

pgsql: doc: Specify when ssl_prefer_server_ciphers was added

2024-07-04 Thread Daniel Gustafsson
doc: Specify when ssl_prefer_server_ciphers was added The ssl_prefer_server_ciphers setting is quite important from a security point of view, so simply stating that older versions doesn't have it isn't very helpful. This adds the version when the GUC was added to help readers. Backpatch to all s

pgsql: doc: Specify when ssl_prefer_server_ciphers was added

2024-07-04 Thread Daniel Gustafsson
doc: Specify when ssl_prefer_server_ciphers was added The ssl_prefer_server_ciphers setting is quite important from a security point of view, so simply stating that older versions doesn't have it isn't very helpful. This adds the version when the GUC was added to help readers. Backpatch to all s

pgsql: Add pg_get_acl() to get the ACL for a database object

2024-07-04 Thread Michael Paquier
Add pg_get_acl() to get the ACL for a database object This function returns the ACL for a database object, specified by catalog OID and object OID. This is useful to be able to retrieve the ACL associated to an object specified with a (class_id,objid) couple, similarly to the other functions for

pgsql: SQL/JSON: Fix some obsolete comments.

2024-07-04 Thread Amit Langote
SQL/JSON: Fix some obsolete comments. JSON_OBJECT(), JSON_OBJETAGG(), JSON_ARRAY(), and JSON_ARRAYAGG() added in 7081ac46ace are not transformed into direct calls to user-defined functions as the comments claim. Fix by mentioning instead that they are transformed into JsonConstructorExpr nodes, wh

pgsql: SQL/JSON: Fix some obsolete comments.

2024-07-04 Thread Amit Langote
SQL/JSON: Fix some obsolete comments. JSON_OBJECT(), JSON_OBJETAGG(), JSON_ARRAY(), and JSON_ARRAYAGG() added in 7081ac46ace are not transformed into direct calls to user-defined functions as the comments claim. Fix by mentioning instead that they are transformed into JsonConstructorExpr nodes, wh

pgsql: SQL/JSON: Fix some obsolete comments.

2024-07-04 Thread Amit Langote
SQL/JSON: Fix some obsolete comments. JSON_OBJECT(), JSON_OBJETAGG(), JSON_ARRAY(), and JSON_ARRAYAGG() added in 7081ac46ace are not transformed into direct calls to user-defined functions as the comments claim. Fix by mentioning instead that they are transformed into JsonConstructorExpr nodes, wh