MTES-MCT / metadata-postgresql

Plume : gestion des métadonnées du patrimoine PostgreSQL
https://mtes-mct.github.io/metadata-postgresql/
GNU Affero General Public License v3.0
1 stars 1 forks source link

Uniformisation des requêtes PostgreSQL #69

Closed alhyss closed 2 years ago

alhyss commented 2 years ago

L'idée générale est de faire en sorte que toutes les fonctions du module plume.pg.queries puissent être appelées exactement de la même façon.

Tous les paramètres sont fournis à la fonction qui crée la requête. Par exemple, on aura désormais :

query = query_is_relation_owner('nom du schéma', 'nom de la table')

La fonction renvoie un tuple, qu'on éclate pour le passer en argument de psycopg2.cursor.execute :

cur.execute(*query)

Antérieurement, certains paramètres étaient passés directement à psycopg2.cursor.execute plutôt qu'à la fonction elle-même, avec des comportements variables d'une fonction à l'autre. Les fonctions écrites récemment avaient déjà le fonctionnement décrit ci-avant, ce qui ajoutait encore un peu d'hétérogénéité à l'affaire.

Cette évolution va nécessiter de revoir les appels aux fonctions suivantes :

À noter que pour certaines d'entre elles tous les paramètres sont déjà au bon endroit, il y aura juste l'astérisque à ajouter.

Le message d'erreur à afficher lorsque la requête était supposée renvoyer un résultat et ne le fait pas est fourni par l'attribut plume.pg.queries.PgQueryWithArgs.missing_mssg de la requête.

@WREATCHED Attends mon feu vert pour appliquer les changements de ton côté, je suis en train d'écrire cette issue alors que je n'ai pas fini de modifier les fonctions.

alhyss commented 2 years ago

@WREATCHED C'est fait, tu peux y aller. Désolée d'avoir tant traîné !

En y repensant, je t'avais mis ci-dessus la liste des fonctions concernées, mais le plus simple est encore de faire une recherche sur query_ dans tous tes fichiers. À l'exception des commandes d'import, ça te donnera exactement tous les endroits où tu auras des modifications à faire.

WREATCHED commented 2 years ago

query_update_column_comment Oui, non utilisée

WREATCHED commented 2 years ago

Ok pour messages générés par les requêtes Je pousse sur le GitHub