Re: Connecteur mysql_fdw : problème de "cache"

From: Bertrand ROBERT <b(dot)robert(at)kifaisa(dot)com>
To: Daniel Verite <daniel(at)manitou-mail(dot)org>
Cc: pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: Connecteur mysql_fdw : problème de "cache"
Date: 2016-12-14 17:02:13
Message-ID: 683908462.7031514.1481734933494.JavaMail.zimbra@kifaisa.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonjour Daniel,

Je pense que je me suis perdu moi même dans mes tests.
Je viens d'affiner le problème : c'est bien lié à l'autocommit côté MySQL.

Si autocommit = 0 côté MySQL et quelque soit la méthode d'update :
- select * from <foreign table>; (côté PostGreSQL)

- méthode 1 :
update matable ....;

- méthode 2 :
update matable ...;
commit;

- méthode 3 :
start transaction;
update matable ...;
commit;

- select * from <foreign table>; (côté PostGreSQL)

=> PostGreSQL ne verra pas la mise à jour des données si on réutilise la connexion précédente sans s'être déconnecté

Du coup je ne sais pas si c'est un bug ou un comportement "normal" :/

J'avais effectivement vu ce "rapport de bug" (https://github.com/EnterpriseDB/mysql_fdw/issues/101) mais justement je me posais la question pour le futur si quelqu'un a déjà l'information :)

De: "Daniel Verite" <daniel(at)manitou-mail(dot)org>
À: "b robert" <b(dot)robert(at)kifaisa(dot)com>
Cc: "pgsql-fr-generale" <pgsql-fr-generale(at)postgresql(dot)org>
Envoyé: Mercredi 14 Décembre 2016 17:21:48
Objet: Re: [pgsql-fr-generale] Connecteur mysql_fdw : problème de "cache"

Bertrand ROBERT wrote:

> - je relance la lecture depuis PostGreSQL avec la même connexion qu'au début
> :
> '1', '2.129'
> '2', '2.129'
> '3', '2.129'
> etc
>
> => PostGreSQL ne voit pas les nouvelles valeurs

En principe il n'y a pas de cache de résultats de requêtes.

Pour ma part je ne reproduis pas le pb en question, c.a.d.
qu'une session PG qui réexecute le même
SELECT * FROM remote_table
voit bien immédiatement les modifs faites côté MySQL, sans
nécessité de se reconnecter.
Testé avec un mysql 5.5.53 d'ubuntu 14.04,
PG 9.6.1 et le dernier mysql_fdw de github.

La première raison qui vient à l'esprit quand des
changements ne sont pas visibles est que la transaction
qui les a fait n'est pas commitée. Ceci dit une connection
nouvellement ouverte ne verrait pas non plus
les changements si c'était juste ça.
Idéalement il faudrait un test reproductible pour analyser
ce qui se passe.

Pour la question des écritures distantes dans une transaction,
effectivement les transactions postgres ne sont pas
exportées vers mysql, malheureusement:
https://github.com/EnterpriseDB/mysql_fdw/issues/101

Cordialement,
--
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite

__________ Information from ESET Mail Security, version of virus signature database 14605 (20161214) __________

The message was checked by ESET Mail Security.
http://www.eset.com

__________ Information from ESET Mail Security, version of virus signature database 14605 (20161214) __________

The message was checked by ESET Mail Security.
http://www.eset.com

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Daniel Verite 2016-12-15 13:13:21 Re: Connecteur mysql_fdw : problème de "cache"
Previous Message Daniel Verite 2016-12-14 16:21:48 Re: Connecteur mysql_fdw : problème de "cache"