Skip to content

Commit 4835df3

Browse files
committed
Done:
< Last updated: Sat May 5 10:47:39 EDT 2007 > Last updated: Sat May 5 11:39:57 EDT 2007 < * Flush cached query plans when the dependent objects change, < when the cardinality of parameters changes dramatically, or > * -Flush cached query plans when the dependent objects change or < < A more complex solution would be to save multiple plans for different < cardinality and use the appropriate plan based on the EXECUTE values. < < * Track dependencies in function bodies and recompile/invalidate < < This is particularly important for references to temporary tables < in PL/PgSQL because PL/PgSQL caches query plans. The only workaround < in PL/PgSQL is to use EXECUTE. One complexity is that a function < might itself drop and recreate dependent tables, causing it to < invalidate its own query plan. < < * Invalidate prepared queries, like INSERT, when the table definition > * -Track dependencies in function bodies and recompile/invalidate > * -Invalidate prepared queries, like INSERT, when the table definition
1 parent dc9d394 commit 4835df3

File tree

2 files changed

+37
-57
lines changed

2 files changed

+37
-57
lines changed

doc/TODO

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
1+
z
22
PostgreSQL TODO List
33
====================
44
Current maintainer: Bruce Momjian (bruce@momjian.us)
5-
Last updated: Sat May 5 10:47:39 EDT 2007
5+
Last updated: Sat May 5 11:39:57 EDT 2007
66

77
The most recent version of this document can be viewed at
88
http://www.postgresql.org/docs/faqs.TODO.html.
@@ -958,22 +958,10 @@ Triggers
958958
Dependency Checking
959959
===================
960960

961-
* Flush cached query plans when the dependent objects change,
962-
when the cardinality of parameters changes dramatically, or
961+
* -Flush cached query plans when the dependent objects change or
963962
when new ANALYZE statistics are available
964-
965-
A more complex solution would be to save multiple plans for different
966-
cardinality and use the appropriate plan based on the EXECUTE values.
967-
968-
* Track dependencies in function bodies and recompile/invalidate
969-
970-
This is particularly important for references to temporary tables
971-
in PL/PgSQL because PL/PgSQL caches query plans. The only workaround
972-
in PL/PgSQL is to use EXECUTE. One complexity is that a function
973-
might itself drop and recreate dependent tables, causing it to
974-
invalidate its own query plan.
975-
976-
* Invalidate prepared queries, like INSERT, when the table definition
963+
* -Track dependencies in function bodies and recompile/invalidate
964+
* -Invalidate prepared queries, like INSERT, when the table definition
977965
is altered
978966

979967

doc/src/FAQ/TODO.html

Lines changed: 32 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@
22
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
33
<html>
44
<head>
5-
<title>PostgreSQL TODO List</title>
5+
<title>z</title>
66
<meta name="generator" content="HTML::TextToHTML v2.25"/>
77
</head>
88
<body bgcolor="#FFFFFF" text="#000000" link="#FF0000" vlink="#A00000" alink="#0000FF">
9-
<h1><a name="section_1">PostgreSQL TODO List</a></h1>
10-
<p>Current maintainer: Bruce Momjian (<a href="mailto:bruce@momjian.us">bruce@momjian.us</a>)<br/>
11-
Last updated: Sat May 5 10:47:39 EDT 2007
12-
</p>
9+
<p>z<br/>
10+
PostgreSQL TODO List
11+
</p><hr/>
12+
Current maintainer: Bruce Momjian (<a href="mailto:bruce@momjian.us">bruce@momjian.us</a>)<br/>
13+
Last updated: Sat May 5 11:39:57 EDT 2007
14+
1315
<p>The most recent version of this document can be viewed at<br/>
1416
<a href="http://www.postgresql.org/docs/faqs.TODO.html">http://www.postgresql.org/docs/faqs.TODO.html</a>.
1517
</p>
@@ -23,7 +25,7 @@ <h1><a name="section_1">PostgreSQL TODO List</a></h1>
2325
first. There is also a developer's wiki at<br/>
2426
<a href="http://developer.postgresql.org">http://developer.postgresql.org</a>.
2527
</p>
26-
<h1><a name="section_2">Administration</a></h1>
28+
<h1><a name="section_1">Administration</a></h1>
2729

2830
<ul>
2931
<li>Allow major upgrades without dump/reload, perhaps using pg_upgrade
@@ -151,7 +153,7 @@ <h1><a name="section_2">Administration</a></h1>
151153
</p>
152154
</li></ul>
153155
</li></ul>
154-
<h1><a name="section_3">Monitoring</a></h1>
156+
<h1><a name="section_2">Monitoring</a></h1>
155157

156158
<ul>
157159
<li>Allow server log information to be output as INSERT statements
@@ -160,7 +162,7 @@ <h1><a name="section_3">Monitoring</a></h1>
160162
</p>
161163
</li><li>-<em>Add ability to monitor the use of temporary sort files</em>
162164
</li></ul>
163-
<h1><a name="section_4">Data Types</a></h1>
165+
<h1><a name="section_3">Data Types</a></h1>
164166

165167
<ul>
166168
<li>-<em>Make 64-bit version of the MONEY data type</em>
@@ -298,7 +300,7 @@ <h1><a name="section_4">Data Types</a></h1>
298300
</li></ul>
299301
</li></ul>
300302
</li></ul>
301-
<h1><a name="section_5">Functions</a></h1>
303+
<h1><a name="section_4">Functions</a></h1>
302304

303305
<ul>
304306
<li>Allow INET subnet tests using non-constants to be indexed
@@ -354,7 +356,7 @@ <h1><a name="section_5">Functions</a></h1>
354356
e.g. box @&gt; point
355357
</p>
356358
</li></ul>
357-
<h1><a name="section_6">Multi-Language Support</a></h1>
359+
<h1><a name="section_5">Multi-Language Support</a></h1>
358360

359361
<ul>
360362
<li>Add NCHAR (as distinguished from ordinary varchar),
@@ -395,7 +397,7 @@ <h1><a name="section_6">Multi-Language Support</a></h1>
395397
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php</a>
396398
</p>
397399
</li></ul>
398-
<h1><a name="section_7">Views / Rules</a></h1>
400+
<h1><a name="section_6">Views / Rules</a></h1>
399401

400402
<ul>
401403
<li>Automatically create rules on views so they are updateable, per SQL99
@@ -412,7 +414,7 @@ <h1><a name="section_7">Views / Rules</a></h1>
412414
are added after the view is created.
413415
</p>
414416
</li></ul>
415-
<h1><a name="section_8">SQL Commands</a></h1>
417+
<h1><a name="section_7">SQL Commands</a></h1>
416418

417419
<ul>
418420
<li>Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT
@@ -701,7 +703,7 @@ <h1><a name="section_8">SQL Commands</a></h1>
701703
</li></ul>
702704
</li></ul>
703705
</li></ul>
704-
<h1><a name="section_9">Clients</a></h1>
706+
<h1><a name="section_8">Clients</a></h1>
705707

706708
<ul>
707709
<li>Have pg_ctl look at PGHOST in case it is a socket directory?
@@ -815,7 +817,7 @@ <h1><a name="section_9">Clients</a></h1>
815817
</p>
816818
</li></ul>
817819
</p></ul>
818-
<h1><a name="section_10">Triggers</a></h1>
820+
<h1><a name="section_9">Triggers</a></h1>
819821

820822
<ul>
821823
<li>Add deferred trigger queue file
@@ -850,26 +852,16 @@ <h1><a name="section_10">Triggers</a></h1>
850852
<p> <a href="http://archives.postgresql.org/pgsql-general/2007-02/msg01466.php">http://archives.postgresql.org/pgsql-general/2007-02/msg01466.php</a>
851853
</p>
852854
</li></ul>
853-
<h1><a name="section_11">Dependency Checking</a></h1>
855+
<h1><a name="section_10">Dependency Checking</a></h1>
854856

855857
<ul>
856-
<li>Flush cached query plans when the dependent objects change,
857-
when the cardinality of parameters changes dramatically, or
858+
<li>-<em>Flush cached query plans when the dependent objects change or</em>
858859
when new ANALYZE statistics are available
859-
<p> A more complex solution would be to save multiple plans for different
860-
cardinality and use the appropriate plan based on the EXECUTE values.
861-
</p>
862-
</li><li>Track dependencies in function bodies and recompile/invalidate
863-
<p> This is particularly important for references to temporary tables
864-
in PL/PgSQL because PL/PgSQL caches query plans. The only workaround
865-
in PL/PgSQL is to use EXECUTE. One complexity is that a function
866-
might itself drop and recreate dependent tables, causing it to
867-
invalidate its own query plan.
868-
</p>
869-
</li><li>Invalidate prepared queries, like INSERT, when the table definition
860+
</li><li>-<em>Track dependencies in function bodies and recompile/invalidate</em>
861+
</li><li>-<em>Invalidate prepared queries, like INSERT, when the table definition</em>
870862
is altered
871863
</li></ul>
872-
<h1><a name="section_12">Indexes</a></h1>
864+
<h1><a name="section_11">Indexes</a></h1>
873865

874866
<ul>
875867
<li>Add UNIQUE capability to non-btree indexes
@@ -942,7 +934,7 @@ <h1><a name="section_12">Indexes</a></h1>
942934
</p>
943935
</li></ul>
944936
</li></ul>
945-
<h1><a name="section_13">Fsync</a></h1>
937+
<h1><a name="section_12">Fsync</a></h1>
946938

947939
<ul>
948940
<li>Improve commit_delay handling to reduce fsync()
@@ -960,7 +952,7 @@ <h1><a name="section_13">Fsync</a></h1>
960952
<a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00079.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00079.php</a>
961953
</p>
962954
</li></ul>
963-
<h1><a name="section_14">Cache Usage</a></h1>
955+
<h1><a name="section_13">Cache Usage</a></h1>
964956

965957
<ul>
966958
<li>Allow free-behind capability for large sequential scans, perhaps using
@@ -1025,7 +1017,7 @@ <h1><a name="section_14">Cache Usage</a></h1>
10251017
<a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php</a>
10261018
</p>
10271019
</li></ul>
1028-
<h1><a name="section_15">Vacuum</a></h1>
1020+
<h1><a name="section_14">Vacuum</a></h1>
10291021

10301022
<ul>
10311023
<li>Improve speed with indexes
@@ -1095,7 +1087,7 @@ <h1><a name="section_15">Vacuum</a></h1>
10951087
</p>
10961088
</li></ul>
10971089
</li></ul>
1098-
<h1><a name="section_16">Locking</a></h1>
1090+
<h1><a name="section_15">Locking</a></h1>
10991091

11001092
<ul>
11011093
<li>Fix priority ordering of read and write light-weight locks (Neil)
@@ -1115,7 +1107,7 @@ <h1><a name="section_16">Locking</a></h1>
11151107
</li><li>Add idle_in_transaction_timeout GUC so locks are not held for long
11161108
periods of time
11171109
</li></ul>
1118-
<h1><a name="section_17">Startup Time Improvements</a></h1>
1110+
<h1><a name="section_16">Startup Time Improvements</a></h1>
11191111

11201112
<ul>
11211113
<li>Experiment with multi-threaded backend for backend creation [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?thread">thread</a>]
@@ -1138,7 +1130,7 @@ <h1><a name="section_17">Startup Time Improvements</a></h1>
11381130
existing backends is one of the difficulties with a backend approach.
11391131
</p>
11401132
</li></ul>
1141-
<h1><a name="section_18">Write-Ahead Log</a></h1>
1133+
<h1><a name="section_17">Write-Ahead Log</a></h1>
11421134

11431135
<ul>
11441136
<li>Eliminate need to write full pages to WAL before page modification [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?wal">wal</a>]
@@ -1204,7 +1196,7 @@ <h1><a name="section_18">Write-Ahead Log</a></h1>
12041196
of indexes on TOAST tables.
12051197
</p>
12061198
</li></ul>
1207-
<h1><a name="section_19">Optimizer / Executor</a></h1>
1199+
<h1><a name="section_18">Optimizer / Executor</a></h1>
12081200

12091201
<ul>
12101202
<li>Improve selectivity functions for geometric operators
@@ -1229,7 +1221,7 @@ <h1><a name="section_19">Optimizer / Executor</a></h1>
12291221
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php</a>
12301222
</p>
12311223
</li></ul>
1232-
<h1><a name="section_20">Miscellaneous Performance</a></h1>
1224+
<h1><a name="section_19">Miscellaneous Performance</a></h1>
12331225

12341226
<ul>
12351227
<li>Do async I/O for faster random read-ahead of data
@@ -1274,7 +1266,7 @@ <h1><a name="section_20">Miscellaneous Performance</a></h1>
12741266
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php</a>
12751267
</p>
12761268
</li></ul>
1277-
<h1><a name="section_21">Source Code</a></h1>
1269+
<h1><a name="section_20">Source Code</a></h1>
12781270

12791271
<ul>
12801272
<li>Add use of 'const' for variables in source tree
@@ -1349,7 +1341,7 @@ <h1><a name="section_21">Source Code</a></h1>
13491341
of result sets using new statement protocol
13501342
</li></ul>
13511343
</li></ul>
1352-
<h1><a name="section_22">Exotic Features</a></h1>
1344+
<h1><a name="section_21">Exotic Features</a></h1>
13531345

13541346
<ul>
13551347
<li>Add pre-parsing phase that converts non-ISO syntax to supported
@@ -1377,7 +1369,7 @@ <h1><a name="section_22">Exotic Features</a></h1>
13771369
<a href="http://archives.postgresql.org/pgsql-hackers/2006-10/msg01527.php">http://archives.postgresql.org/pgsql-hackers/2006-10/msg01527.php</a>
13781370
</p>
13791371
</li></ul>
1380-
<h1><a name="section_23">Features We Do <u>Not</u> Want</a></h1>
1372+
<h1><a name="section_22">Features We Do <u>Not</u> Want</a></h1>
13811373

13821374
<ul>
13831375
<li>All backends running as threads in a single process (not wanted)

0 commit comments

Comments
 (0)