On 11/13/2012 08:46:19 PM, Peter Eisentraut wrote:
> 
> Well, I'm not sure.  We currently have three index entries on the
> topic:
> 
> search path
> search_path
> search_path configuration parameter
> 
> I think I'd put them all under search_path.

Ok.

I think you are right that they need to all be
under one index entry.

It might make sense to have a "search term"
entry that says "see search_term", but since
the two entries would be right next to each
other in the index this seems overkill.

I'm going to send this in as a single patch
that fixes all the search path related
index entries:

  search_path-index.patch

(replaces search_path-normalize.patch
  and search_path-securing_v2.patch)

This new patch also changes the
search path index in doc/src/sgml/func.sgml.
Perhaps I just don't understand the logic
in the indexing in that file but the
search path index there seems to point to the
entire file/nowhere useful.  Since there are 2 places
in the file that are concerned with
search path I've removed the "global"
index into the file and added new
index entries.  This also moved the
"schema, current" index target.  
(Since that too involves search path.)

I've also added a <seealso> entry to "schema, current"
to the top-level "search_path" index entry.

If you want this broken up into smaller
patches let me know.

Regards,

Karl <k...@meme.com>
Free Software:  "You don't pay back, you pay forward."
                 -- Robert A. Heinlein

diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 88cea3d..3bad24c 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -4769,7 +4769,8 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
      <varlistentry id="guc-search-path" xreflabel="search_path">
       <term><varname>search_path</varname> (<type>string</type>)</term>
       <indexterm>
-       <primary><varname>search_path</> configuration parameter</primary>
+       <primary><varname>search_path</varname></primary>
+       <secondary>configuration parameter</secondary>
       </indexterm>
       <indexterm><primary>path</><secondary>for schemas</></>
       <listitem>
diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml
index d6e5d64..99ebd10 100644
--- a/doc/src/sgml/ddl.sgml
+++ b/doc/src/sgml/ddl.sgml
@@ -1698,7 +1698,8 @@ CREATE TABLE public.products ( ... );
    <title>The Schema Search Path</title>
 
    <indexterm>
-    <primary>search path</primary>
+    <primary><varname>search_path</varname></primary>
+    <seealso>schema, current</seealso>
    </indexterm>
 
    <indexterm>
@@ -1735,7 +1736,8 @@ CREATE TABLE public.products ( ... );
    </para>
 
    <indexterm>
-    <primary>search_path</primary>
+    <primary><varname>search_path</varname></primary>
+    <secondary>runtime variable</secondary>
    </indexterm>
 
    <para>
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index f8f63d8..dc6ca1e 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -12944,16 +12944,6 @@ postgres=# SELECT * FROM unnest2(ARRAY[[1,2],[3,4]]);
    </indexterm>
 
    <indexterm>
-    <primary>schema</primary>
-    <secondary>current</secondary>
-   </indexterm>
-
-   <indexterm>
-    <primary>search path</primary>
-    <secondary>current</secondary>
-   </indexterm>
-
-   <indexterm>
     <primary>session_user</primary>
    </indexterm>
 
@@ -12980,6 +12970,11 @@ postgres=# SELECT * FROM unnest2(ARRAY[[1,2],[3,4]]);
     the current user is the <quote>effective user</quote>.
    </para>
 
+   <indexterm>
+    <primary>schema</primary>
+    <secondary>current</secondary>
+   </indexterm>
+
    <para>
     <function>current_schema</function> returns the name of the schema that is
     first in the search path (or a null value if the search path is
@@ -13493,6 +13488,13 @@ SELECT has_function_privilege('joeuser', 'myfunc(int, text)', 'execute');
     are immediately available without doing <command>SET ROLE</>.
    </para>
 
+   <indexterm>
+    <primary><varname>search_path</varname></primary>
+    <secondary>
+      object visibility given an unqualified name
+    </secondary>
+   </indexterm>
+
   <para>
    <xref linkend="functions-info-schema-table"> shows functions that
    determine whether a certain object is <firstterm>visible</> in the
diff --git a/doc/src/sgml/ref/create_function.sgml b/doc/src/sgml/ref/create_function.sgml
index 4336e4b..cb5ee91 100644
--- a/doc/src/sgml/ref/create_function.sgml
+++ b/doc/src/sgml/ref/create_function.sgml
@@ -673,6 +673,11 @@ SELECT * FROM dup(42);
  <refsect1 id="sql-createfunction-security">
   <title>Writing <literal>SECURITY DEFINER</literal> Functions Safely</title>
 
+   <indexterm>
+      <primary><varname>search_path</varname></>
+      <secondary>use in securing functions</>
+   </indexterm>
+
    <para>
     Because a <literal>SECURITY DEFINER</literal> function is executed
     with the privileges of the user that created it, care is needed to

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to