OSDN Git Service

Update copyright year of files
[pghintplan/pg_hint_plan.git] / doc / pg_hint_plan.html
index daab3c0..0142fcd 100755 (executable)
@@ -18,7 +18,7 @@ pre { margin: 0 2em 0 2em; padding:0.3em; border-style: solid; border-width:0.1e
 </head>
 
 <body>
-<h1 id="pg_hint_plan">pg_hint_plan 1.3</h1>
+<h1 id="pg_hint_plan">pg_hint_plan 1.4</h1>
 <div class="navigation">
   <a href="pg_hint_plan.html">pg_hint_plan</a>
 </div>
@@ -153,6 +153,22 @@ during CREATE EXTENSION. Table hints are prioritized than comment hits.</p>
 <span class="strong">postgres-#</span>     JOIN table table3 t3 ON (t2.key = t3.key);
 </pre>
 
+<h4>Hint for restricting join behavior</h4>
+<p>This hint "Memoize" and "NoMemoize" allows and disallows a join to memoize the inner result. In the following example, The NoMemoize hint inhibits the topmost hash join from memoizing the result of table a.</p>
+<pre>
+postgres=# /*+ NoMemoize(a b) */
+EXPLAIN SELECT * FROM a, b WHERE a.val = b.val;
+                             QUERY PLAN                             
+--------------------------------------------------------------------
+ Hash Join  (cost=270.00..1412.50 rows=100000 width=16)
+   Hash Cond: (b.val = a.val)
+   ->  Seq Scan on b  (cost=0.00..15.00 rows=1000 width=8)
+   ->  Hash  (cost=145.00..145.00 rows=10000 width=8)
+         ->  Seq Scan on a  (cost=0.00..145.00 rows=10000 width=8)
+</pre>
+
+  
+
 <h4>Hint for row number correction</h4>
 <p>This hint "Rows" corrects row number misestimation of joins that comes from restrictions of the planner. </p>
 
@@ -229,7 +245,7 @@ postgres-# SELECT * FROM table1 t1 WHERE key = 'value';
 <h2 id="install">Installation</h2>
 This section describes the installation steps.
 <h3 id="build">building binary module</h3>
-<p>Simplly run "make" in the top of the source tree, then "make install" as appropriate user. The PATH environment variable should be set properly for the target PostgreSQL for this process. </p>
+<p>Simply run "make" in the top of the source tree, then "make install" as appropriate user. The PATH environment variable should be set properly for the target PostgreSQL for this process. </p>
 <pre>
 $ tar xzvf pg_hint_plan-1.x.x.tar.gz
 $ cd pg_hint_plan-1.x.x
@@ -239,7 +255,7 @@ $ su
 </pre>
 
 <h3 id="hint-load">Loding pg_hint_plan</h3>
-<p>Basically pg_hint_plan does not requires CREATE EXTENSION. Simplly loading it by LOAD command will activate it and of course you can load it globally by setting shared_preload_libraries in postgresql.conf. Or you might be interested in ALTER USER SET/ALTER DATABASE SET for automatic loading for specific sessions. 
+<p>Basically pg_hint_plan does not requires CREATE EXTENSION. Simply loading it by LOAD command will activate it and of course you can load it globally by setting shared_preload_libraries in postgresql.conf. Or you might be interested in ALTER USER SET/ALTER DATABASE SET for automatic loading for specific sessions. 
 <pre>
 postgres=# LOAD 'pg_hint_plan';
 LOAD
@@ -483,12 +499,12 @@ from executed in parallel.</dd>
 <dd>pg_stat_statements generates a query id ignoring comments. As the result the identical queires with different hints are summerized as the same query.</dd>
 
 <h2 id="requirement">Requirements</h2>
-pg_hint_plan11 1.3 requires PostgreSQL 11.
+pg_hint_plan13 1.3 requires PostgreSQL 13.
 <dl>
 <dt>PostgreSQL versions tested</dt>
-  <dd>Version 11</dd>
+  <dd>Version 13</dd>
 <dt>OS versions tested</dt>
-  <dd>CentOS 7.5</dd>
+  <dd>CentOS 8.2</dd>
 </dl>
 
 <h2 id="seealso">See also</h2>
@@ -503,6 +519,6 @@ pg_hint_plan11 1.3 requires PostgreSQL 11.
   <a href="pg_hint_plan.html">pg_hint_plan</a>
 </div>
 
-<p class="footer">Copyright (c) 2012-2019, NIPPON TELEGRAPH AND TELEPHONE CORPORATION</p>
+<p class="footer">Copyright (c) 2012-2021, NIPPON TELEGRAPH AND TELEPHONE CORPORATION</p>
 </body>
 </html>