AWS AmazonRDS documentation change
Summary
Updated documentation for single-shard optimization to clarify conditions when optimization is rejected (plan_cache_mode='force_generic_plan') and expanded support for UPDATE/DELETE statements
Security assessment
Change describes query optimization behavior adjustments without any security context or vulnerability references
Diff
diff --git a/AmazonRDS/latest/AuroraUserGuide/limitless-query.single-shard.md b/AmazonRDS/latest/AuroraUserGuide/limitless-query.single-shard.md index b7e6d3164..861a37569 100644 --- a/AmazonRDS/latest/AuroraUserGuide/limitless-query.single-shard.md +++ b/AmazonRDS/latest/AuroraUserGuide/limitless-query.single-shard.md @@ -188 +188 @@ If a query contains one or more views, single-shard optimization is disabled for -Aurora PostgreSQL Limitless Database supports single-shard optimization for prepared `SELECT` statements. +Aurora PostgreSQL Limitless Database supports single-shard optimization for prepared `SELECT`, `UPDATE`, and `DELETE` statements. @@ -190,30 +190 @@ Aurora PostgreSQL Limitless Database supports single-shard optimization for prep -However, if the prepared statement is an `UPDATE` or `DELETE` and contains a prepared variable, the query planner rejects single-shard optimization for that query. This is shown in the following examples: the `Single Shard Optimized` indicator is missing. - - - postgres_limitless=> PREPARE testStmt AS SELECT customer_name - FROM customers c WHERE c.customer_id = $1; - PREPARE - - postgres_limitless=> EXECUTE testStmt(1); - - customer_name - --------------- - (0 rows) - - - postgres_limitless=> EXPLAIN verbose EXECUTE testStmt(1); - - QUERY PLAN - -------------------------------------------------------------------------- - Foreign Scan (cost=100.00..101.00 rows=100 width=0) - Output: customer_name - Remote Plans from Shard postgres_s3: - Seq Scan on public.customers_ts00001 c (cost=0.00..24.12 rows=6 width=32) - Output: c.customer_name - Filter: (c.customer_id = 1) - Query Identifier: 1520926022284463170 - Remote SQL: SELECT customer_name - FROM public.customers c - WHERE (customer_id = $1) - Query Identifier: 1520926022284463170 - (11 rows) +However, if you use prepared statements for `PREPARE` and `EXECUTE` with `plan_cache_mode` set to `'force_generic_plan'`, the query planner rejects single-shard optimization for that query.