Compare commits

..

No commits in common. "178ee1d858d89f6d86f42a84bd4b8014ddfa7245" and "cf352ddcdd84d959774766347b24f4e800ffdd3c" have entirely different histories.

2 changed files with 28 additions and 5 deletions

View File

@ -412,6 +412,12 @@ EXEC SQL DISCONNECT <optional><replaceable>connection</replaceable></optional>;
</simpara>
</listitem>
<listitem>
<simpara>
<literal>DEFAULT</literal>
</simpara>
</listitem>
<listitem>
<simpara>
<literal>CURRENT</literal>
@ -7122,6 +7128,7 @@ EXEC SQL DEALLOCATE DESCRIPTOR mydesc;
<synopsis>
DISCONNECT <replaceable class="parameter">connection_name</replaceable>
DISCONNECT [ CURRENT ]
DISCONNECT DEFAULT
DISCONNECT ALL
</synopsis>
</refsynopsisdiv>
@ -7162,6 +7169,15 @@ DISCONNECT ALL
</listitem>
</varlistentry>
<varlistentry id="ecpg-sql-disconnect-default">
<term><literal>DEFAULT</literal></term>
<listitem>
<para>
Close the default connection.
</para>
</listitem>
</varlistentry>
<varlistentry id="ecpg-sql-disconnect-all">
<term><literal>ALL</literal></term>
<listitem>
@ -7180,11 +7196,13 @@ DISCONNECT ALL
int
main(void)
{
EXEC SQL CONNECT TO testdb AS DEFAULT USER testuser;
EXEC SQL CONNECT TO testdb AS con1 USER testuser;
EXEC SQL CONNECT TO testdb AS con2 USER testuser;
EXEC SQL CONNECT TO testdb AS con3 USER testuser;
EXEC SQL DISCONNECT CURRENT; /* close con3 */
EXEC SQL DISCONNECT DEFAULT; /* close DEFAULT */
EXEC SQL DISCONNECT ALL; /* close con2 and con1 */
return 0;
@ -7752,11 +7770,11 @@ SET CONNECTION [ TO | = ] <replaceable class="parameter">connection_name</replac
</listitem>
</varlistentry>
<varlistentry id="ecpg-sql-set-connection-current">
<term><literal>CURRENT</literal></term>
<varlistentry id="ecpg-sql-set-connection-default">
<term><literal>DEFAULT</literal></term>
<listitem>
<para>
Set the connection to the current connection (thus, nothing happens).
Set the connection to the default connection.
</para>
</listitem>
</varlistentry>

View File

@ -494,8 +494,13 @@ expand_single_inheritance_child(PlannerInfo *root, RangeTblEntry *parentrte,
childrte->inh = false;
childrte->securityQuals = NIL;
/* No permission checking for child RTEs. */
childrte->perminfoindex = 0;
/*
* No permission checking for the child RTE unless it's the parent
* relation in its child role, which only applies to traditional
* inheritance.
*/
if (childOID != parentOID)
childrte->perminfoindex = 0;
/* Link not-yet-fully-filled child RTE into data structures */
parse->rtable = lappend(parse->rtable, childrte);