Re: Patching dblink.c to avoid warning about open transaction

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Patching dblink.c to avoid warning about open transaction
Дата
Msg-id 200509261658.j8QGw4416917@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: Patching dblink.c to avoid warning about open transaction  (Bruce Momjian <pgman@candle.pha.pa.us>)
Ответы Re: Patching dblink.c to avoid warning about open transaction  (Joe Conway <mail@joeconway.com>)
Список pgsql-hackers
[ Joe, would you review this? ]

Your patch has been added to the PostgreSQL unapplied patches list at:
http://momjian.postgresql.org/cgi-bin/pgpatches

It will be applied as soon as one of the PostgreSQL committers reviews
and approves it.

---------------------------------------------------------------------------


Bruce Momjian wrote:
> Tom Lane wrote:
> > Jonathan Beit-Aharon <jbeitaharon@intrusic.com> writes:
> > >         if (!conn)<br>
> > >                
DBLINK_CONN_NOT_AVAIL;<br>
> > 
> > Could we see this in a less broken format?
> 
> Here is the patch in text format.
> 
> -- 
>   Bruce Momjian                        |  http://candle.pha.pa.us
>   pgman@candle.pha.pa.us               |  (610) 359-1001
>   +  If your life is a hard drive,     |  13 Roberts Road
>   +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

> --- dblink.c    Sat Jan  1 00:43:05 2005
> +++
> /home/jbeitaharon/dev/third/postgreSQL/contrib/dblink/dblink.c
> Thu Sep 22 16:10:20 2005
> @@ -329,12 +329,16 @@
>         if (!conn)
>                 DBLINK_CONN_NOT_AVAIL;
> +
> +       if (rcon)
> +               rcon->remoteTrFlag = (PQtransactionStatus(conn) !=
> PQTRANS_IDLE);
> -       res = PQexec(conn, "BEGIN");
> -       if (PQresultStatus(res) != PGRES_COMMAND_OK)
> -               DBLINK_RES_INTERNALERROR("begin error");
> -
> -       PQclear(res);
> +       if ((!rcon) || (!(rcon->remoteTrFlag))) {
> +               res = PQexec(conn, "BEGIN");
> +               if (PQresultStatus(res) != PGRES_COMMAND_OK)
> +                       DBLINK_RES_INTERNALERROR("begin error");
> +               PQclear(res);
> +       }
>         appendStringInfo(str, "DECLARE %s CURSOR FOR %s", curname,
> sql);
>         res = PQexec(conn, str->data);
> @@ -424,12 +428,13 @@
>         PQclear(res);
> -       /* commit the transaction */
> -       res = PQexec(conn, "COMMIT");
> -       if (PQresultStatus(res) != PGRES_COMMAND_OK)
> -               DBLINK_RES_INTERNALERROR("commit error");
> -
> -       PQclear(res);
> +       if ((!rcon) || (!(rcon->remoteTrFlag))) {
> +               /* commit the transaction */
> +               res = PQexec(conn, "COMMIT");
> +               if (PQresultStatus(res) != PGRES_COMMAND_OK)
> +                       DBLINK_RES_INTERNALERROR("commit error");
> +               PQclear(res);
> +       }
>         PG_RETURN_TEXT_P(GET_TEXT("OK"));
>  }

> 
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: roundoff problem in time datatype
Следующее
От: "Joshua D. Drake"
Дата:
Сообщение: Re: Open items list for 8.1