#1 Wed 16 October 2013 16:19
- Thomas Williamson
- Participant actif
- Lieu: Poitiers
- Date d'inscription: 16 Nov 2008
- Messages: 92
Colonne geom vide
Bonjour,
J'ai une table stockant des polygones [geometry(MultiPolygon)] dont la colonne geom n'affiche aucune valeur. D'après ce que j'ai pu trouver, il s'agirait d'un bug d'affichage lié à pgAdmin III. En effet, l'affichage dans QGIS montre qu'une géométrie est bel et bien stockée puisque la couche de polygones s'affiche parfaitement. Je trouve cela assez gênant car j'utilise parfois des fonctions PostGIS pour mettre à jour cette colonne sur certaines lignes et le bug ne me permet pas de vérifier si la mise à jour a bien été effectuée...
Avez-vous déjà rencontré ce problème et éventuellement trouvé une solution ?
Pour info : message posté en parallèle ici sur le forum pgAdmin du site postgresql-fr. Je mettrais à jour de part et d'autre si une solution existe.
Merci !
Thomas
Dernière modification par Thomas Williamson (Wed 16 October 2013 16:24)
Hors ligne
#2 Wed 16 October 2013 16:40
Re: Colonne geom vide
Bonjour,
Avez-vous déjà rencontré ce problème
Oui très souvent !
et éventuellement trouvé une solution ?
Non à part lancé la requête SELECT count(id) FROM maTable WHERE the_geom is null;
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Wed 16 October 2013 16:46
- Thomas Williamson
- Participant actif
- Lieu: Poitiers
- Date d'inscription: 16 Nov 2008
- Messages: 92
Re: Colonne geom vide
Bonjour,
En effet, une requête de vérification s'impose. Toutefois j'ai remarqué qu'en exécutant des requêtes qui renvoient une sélection de lignes, les valeurs s'affichent bien... Serait-ce plutôt lié au nombre de lignes affichées ? Vivement une prochaine version qui débug la chose.
Merci pour votre réponse !
Thomas
Dernière modification par Thomas Williamson (Wed 16 October 2013 16:46)
Hors ligne
#4 Wed 16 October 2013 16:53
- Nicolas Granier
- Participant assidu
- Date d'inscription: 19 Apr 2007
- Messages: 271
Re: Colonne geom vide
J'ai déjà rencontré ce cas de figure.
Dans mon cas, il s'agit uniquement d'un problème d'affichage de pgAdmin, si l'on fait un copier coller de la cellule "soit-disant vide" et que l'on colle le résultat dans un éditeur de texte on a bien la géométrie. L'autre moyen de vérification est de renvoyer la géométrie sous forme textuelle en utilisant st_astext(the_geom).
D'après votre description du problème, je pencherai plus pour ce bug d'affichage.
A+
Nicolas GRANIER
Hors ligne
#5 Wed 16 October 2013 17:10
Re: Colonne geom vide
Bonjour,
Je trouve cela assez gênant car j'utilise parfois des fonctions PostGIS pour mettre à jour cette colonne sur certaines lignes et le bug ne me permet pas de vérifier si la mise à jour a bien été effectuée...
N'hésitez pas à utiliser la clause RETURNING dans votre UPDATE pour voir les attributs après modification :
Code:
UPDATE ma_table SET geom = st_buffer(geom,50) WHERE ... RETURNING st_astext(geom)
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#6 Thu 17 October 2013 08:16
- Thomas Williamson
- Participant actif
- Lieu: Poitiers
- Date d'inscription: 16 Nov 2008
- Messages: 92
Re: Colonne geom vide
Bonjour,
En effet, la clause RETURNING est intéressante ! Je n'y pensais pas habituellement...
Sinon, je viens de tester ça :
Code:
SELECT * FROM matable ;
...et ma colonne geom s'affiche bien dans le résultat de requête. C'est quand même bizarre ce truc !
Thomas
Dernière modification par Thomas Williamson (Thu 17 October 2013 08:16)
Hors ligne
#7 Thu 17 October 2013 11:14
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Colonne geom vide
Bonjour,
"It's not a bug, its a feature"
PgAdmin limite la taille des colonnes affichées dans son interface graphique pour éviter des blocages ou des lenteurs.
C'est en fait assez pratique: imaginez que votre colonne contienne des gros objets (plusieurs centaines de Mo), son affichage prendrait du temps
D'autres éditeurs SQL ne se comportent pas comme ca (NetBeans par exemple) et affiche tout le temps le contenu des colonnes geo.
Sinon comme le dit Yves, c'est surtout par requete SQL que vous pouvez vérifier que les opérations se sont bien passées, ou en faisant afficher des infos sur les objets geo et pas les objets eux-memes:
geometryType(geom) pour afficher le type de geometrie, ou st_npoints(geom) pour afficher le nombre de points formant la géométrie.
Edit: c'est meme devenu une entrée sur le site PostGIS: http://postgis.net/2013/10/05/tip_pgAdmin_shows_no_data
Nicolas
Hors ligne
#8 Thu 17 October 2013 13:11
- Thomas Williamson
- Participant actif
- Lieu: Poitiers
- Date d'inscription: 16 Nov 2008
- Messages: 92
Re: Colonne geom vide
Bonjour,
Merci pour ces compléments d'information ! Le point spécialement dédié à ce comportement est très clair dans la FAQ PostGIS.
Bonne journée,
Thomas
Hors ligne
#9 Sun 20 October 2013 09:57
- ranalisolofo.larrys
- Participant occasionnel
- Lieu: Ambolonkandrina
- Date d'inscription: 19 Jul 2007
- Messages: 40
- Site web
Re: Colonne geom vide
Bonjour,
Il suffit de double cliquer sur la cellule pour afficher le contenu du geom...Si après double click, rien ne s'affiche alors effectivement la geometry est vide.
Larrys
Hors ligne
#10 Mon 21 October 2013 07:55
- Thomas Williamson
- Participant actif
- Lieu: Poitiers
- Date d'inscription: 16 Nov 2008
- Messages: 92
Re: Colonne geom vide
Bonjour,
Non, le double-clic sur une cellule n'affiche pas la géométrie (cf. pièce jointe à ce message), dans mon cas... Une zone s'ouvre bel et bien mais n'affiche aucune valeur. Si je fais un CTRL + A puis que je copie la sélection et la colle dans un éditeur de texte, la géométrie existe pourtant (pour info : un contour de commune française occupe 34124 caractères !).
Thomas
Hors ligne