Module plume.pg.queries#
Requêtes prêtes à être envoyées au serveur PostgreSQL.
Ce module suppose l’usage de la bibliothèque Psycopg pour la communication avec le serveur PostgreSQL.
Il génère des requêtes à exécuter avec la méthode
psycopg2.cursor.execute(). Ces requêtes - objets
PgQueryWithArgs - sont auto-suffisantes, dans le sens
où elles incluent tous les paramètres nécessaires.
La syntaxe pour l’usage de ces requêtes est toujours :
>>> cur.execute(*query)
References#
- class plume.pg.queries.PgQueryWithArgs(query, args=None, **kwargs)#
- Bases : - tuple- Requête PostgreSQL prête à l’emploi. - Prend la forme d’un tuple à un ou deux éléments. Le premier élément est la requête SQL, soit un objet de classe - psycopg2.sql.Composedou- psycopg2.sql.SQL. Le second élément correspond aux paramètres de la requête, et peut prendre la forme d’un tuple ou d’un dictionnaire selon les cas. Il n’est présent que si la requête admet des paramètres.- D’une manière générale, il n’est pas utile de contrôler la présence du second élément. Une requête - querypeut toujours être passée en argument de- psycopg2.cursor.execute()de la manière suivante :- >>> cur.execute(*query) - Parameters:
- querypsycopg2.sql.SQL or psycopg2.sql.Composed
- La requête. 
- argstuple or dict, optional
- Les paramètres de la requête. 
- expecting{“some rows”, “one row”, “one value”, “nothing”}, optional
- Décrit le résultat attendu, le cas échéant. 
- allow_nonebool, default True
- Trues’il est admis que la requête ne renvoie aucun enregistrement. Si- False, une erreur devra être émise en l’absence de résultat.
- missing_mssgstr, optional
- Le message d’erreur à présenter lorsque la requête ne renvoie pas de résultat. Ce paramètre est ignoré lorsque allow_none vaut - True.
 
- Attributes:
- querypsycopg2.sql.SQL or psycopg2.sql.Composed
- La requête à proprement parler. 
- argstuple or dict or None
- Les paramètres de la requête. Il s’agira d’un tuple vide si la requête ne prend pas de paramètre. 
- expecting{“some rows”, “one row”, “one value”, “nothing”}
- Décrit le résultat attendu, le cas échéant. 
- allow_nonebool
- Trues’il est admis que la requête ne renvoie aucun enregistrement. Si- False, une erreur devra être émise en l’absence de résultat.
- missing_mssgstr or None
- Le message d’erreur à présenter lorsque la requête ne renvoie pas de résultat. Vaut toujours - Nonelorsque allow_none vaut- True.
 
 - Methods - count(value, /)- Return number of occurrences of value. - index(value[, start, stop])- Return first index of value. 
- plume.pg.queries.query_delete_any_table(schema_name, table_name, pk_name, data, columns=None)#
- Requête qui supprime un enregistrement d’une table quelconque. - À utiliser comme suit : - >>> query = query_delete_any_table( ... 'nom du schéma', 'nom de la table', 'nom du champ de clé primaire', ... ['valeur champ 1', 'valeur de la clé primaire', 'valeur champ 3'], ... ['nom champ 1', 'nom du champ de clé primaire', 'nom champ 3'] ... ) >>> cur.execute(*query) - La fonction renvoie une erreur si data et columns ne contiennent pas de valeur pour le champ de clé primaire. Il ne pose aucun problème de fournir des valeurs pour d’autres champs, même si la fonction n’en fera rien. - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la table. 
- pk_namestr
- Nom du champ de clé primaire. La fonction ne prend pas en charge les tables avec des clés primaires multi-champs. Il est admissible d’utiliser un champ non nul prenant des valeurs uniques qui ne serait pas formellement la clé primaire de la relation. 
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns(). Ce paramètre est obligatoire si data est une liste de valeur.
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_delete_meta_categorie(data, columns=None)#
- Requête qui supprime une catégorie de la table meta_categorie de PlumePg. - À utiliser comme suit : - >>> query = query_delete_meta_categorie(data) >>> cur.execute(*query) - La fonction renvoie une erreur si data et columns ne contiennent pas de valeur pour le champ de clé primaire, path. Il ne pose aucun problème de fournir des valeurs pour d’autres champs, même si la fonction n’en fera rien. - Parameters:
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns().
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_delete_meta_tab(data, columns=None)#
- Requête qui supprime un onglet de la table meta_tab de PlumePg. - À utiliser comme suit : - >>> query = query_delete_meta_tab(data) >>> cur.execute(*query) - La fonction renvoie une erreur si data et columns ne contiennent pas de valeur pour le champ de clé primaire, tab_id. Il ne pose aucun problème de fournir des valeurs pour d’autres champs, même si la fonction n’en fera rien. - Parameters:
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns().
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_delete_meta_template(data, columns=None)#
- Requête qui supprime un modèle de fiches de métadonnées de la table meta_template de PlumePg. - À utiliser comme suit : - >>> query = query_delete_meta_template(data) >>> cur.execute(*query) - La fonction renvoie une erreur si data et columns ne contiennent pas de valeur pour le champ de clé primaire, tpl_id. Il ne pose aucun problème de fournir des valeurs pour d’autres champs, même si la fonction n’en fera rien. - Parameters:
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns().
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_delete_meta_template_categories(data, columns=None)#
- Requête qui supprime une association modèle-catégorie de la table meta_template_categories de PlumePg. - À utiliser comme suit : - >>> query = query_delete_meta_template_categories(data) >>> cur.execute(*query) - La fonction renvoie une erreur si data et columns ne contiennent pas de valeur pour le champ de clé primaire, tplcat_id. Il ne pose aucun problème de fournir des valeurs pour d’autres champs, même si la fonction n’en fera rien. - Parameters:
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns().
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_evaluate_local_templates(templates_collection, schema_name, table_name)#
- Requête qui évalue côté serveur les conditions d’application des modèles locaux. - À utiliser comme suit : - >>> query = query_evaluate_local_templates() >>> cur.execute(*query) >>> templates = cur.fetchall() - Parameters:
- templates_collectionplume.pg.template.LocalTemplatesCollection
- Le répertoire des modèles stockés localement, qui aura été instancié parce que PlumePg n’est pas activée sur la base de la table dont on affiche les métadonnées. 
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL, incluant son dictionnaire de paramètres. 
 
 - Notes - La forme du résultat des requêtes créées avec cette fonction est identique à celle de - query_list_templates(), ce qui permet ensuite d’appliquer dans les deux cas la fonction- plume.pg.template.search_template()pour obtenir le nom du modèle à appliquer.
- plume.pg.queries.query_exists_extension(extension)#
- Requête qui vérifie qu’une extension est installée sur la base PostgreSQL cible. - À utiliser comme suit : - >>> query = query_exists_extension('nom de l'extension') >>> cur.execute(*query) >>> extension_exists = cur.fetchone()[0] - Le résultat est : - Truesi l’extension est installée ;
- Falsesi elle est disponible dans le répertoire des extensions du serveur mais non installée ;
- Nonesi elle n’est pas disponible sur le serveur.
 - Parameters:
- extensionstr
- Nom de l’extension. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_for_theme_computing(schema_name, table_name, level_one=True, level_two=True, **kwargs)#
- Pseudo-requête pour le calcul du ou des thèmes Ecosphères associés au schéma. - Il s’agit d’une pseudo-requête, dans la mesure où aucune information n’est effectivement récupérée côté serveur, puisque c’est du nom du schéma que sont in fine déduits les thèmes. Mais elle permet de présenter les paramètres sont une forme adaptée au process de calcul. - À utiliser comme suit : - >>> query = query_for_theme_computing(schema_name='nom du schéma', ... table_name='nom de la relation', **compute_params) >>> cur.execute(*query) >>> result = cur.fetchall() - compute_paramsest le dictionnaire fourni par la clé “compute parameters” du dictionnaire interne associé à la clé courante du dictionnaire de widgets. Si spécifié par le modèle, il contiendra la valeur des paramètres level_one et/ou level_two.- Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
- level_onebool, default True
- Si - True, le ou les thèmes de premier niveau associés au nom du schéma sont ajoutés (les plus génériques).
- level_twobool, default True
- Si - True, le ou les thèmes de second niveau, associés au nom du schéma sont ajoutés (les plus spécifiques).
- **kwargsdict, optional
- Paramètres supplémentaires ignorés. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL, incluant son tuple de paramètres. 
 
 - Notes - Cette fonction est référencée par le module - plume.pg.computer.
- plume.pg.queries.query_get_categories(tpl_label)#
- Requête d’import des catégories à afficher dans un modèle donné. - À utiliser comme suit : - >>> query = query_get_categories('nom du modèle') >>> cur.execute(*query) >>> categories = cur.fetchall() - categoriesest une liste de tuples contenant chacun un dictionnaire. À chaque tuple correspond une catégorie de métadonnées associée au modèle. Les clés des dictionnaires correspondent aux noms des champs de la vue- z_plume.meta_template_categories_fullet les valeurs sont les valeurs contenues dans ces champs pour l’association modèle/catégorie considérée.- Ce résultat peut être fourni en argument au constructeur de la classe - TemplateDict.- Parameters:
- tpl_labelstr
- Nom du modèle choisi. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 - Notes - La requête interroge la vue - z_plume.meta_template_categories_fullcréée par l’extension PlumePg. Elle ne doit donc être exécutée qu’après contrôle de l’existence de l’extension.
- plume.pg.queries.query_get_columns(schema_name, table_name)#
- Requête de récupération des descriptifs des champs d’une table ou vue. - À utiliser comme suit : - >>> query = query_get_columns('nom du schéma', ... 'nom de la relation') >>> cur.execute(*query) >>> columns = cur.fetchall() - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_get_comment_fragments(schema_name, table_name, pattern=None, flags=None, **kwargs)#
- Requête de récupération d’une partie du descriptif PostgreSQL d’une table. - À utiliser comme suit : - >>> query = query_get_comment_fragments(schema_name='nom du schéma', ... table_name='nom de la relation', **compute_params) >>> cur.execute(*query) >>> result = cur.fetchall() - compute_paramsest le dictionnaire fourni par la clé “compute parameters” du dictionnaire interne associé à la clé courante du dictionnaire de widgets. Si spécifié par le modèle, il contiendra la valeur des paramètres pattern et flags.- La liste ainsi obtenue contient des tuples d’un élément, un pour chaque fragment du descriptif capturé par l’expression régulière. Si aucune expression régulière n’a été spécifiée, c’est tout le descriptif hors métadonnées qui est renvoyé. Avec ou sans expression régulière, la requête commence en effet par retirer les balises - <METADATA>et leur contenu.- Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
- patternstr, optional
- Une expression régulière déterminant le ou les fragments du descriptif PostgreSQL à renvoyer. Si non spécifié, la requête récupèrera tout le descriptif expurgé des balises - <METADATA>et de leur contenu. Si l’expression régulière est invalide (d’après les critères de PostgreSQL), la requête ne renverra rien.
- flagsstr, optional
- Paramètres associés à l’expression rationnelle. Si PostgreSQL ne les reconnaît pas, la requête ne renverra rien. 
- **kwargsdict, optional
- Paramètres supplémentaires ignorés. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL, incluant son tuple de paramètres. 
 
 - Avertissement - Cette requête échouera si PlumePg n’est pas installée sur la base. - Notes - Cette fonction est référencée par le module - plume.pg.computer.
- plume.pg.queries.query_get_creation_date(schema_name, table_name, **kwargs)#
- Requête de récupération de la date de création d’une table. - À utiliser comme suit : - >>> query = query_get_creation_date(schema_name='nom du schéma', ... table_name='nom de la table', **compute_params) >>> cur.execute(*query) >>> result = cur.fetchall() - compute_paramsest le dictionnaire fourni par la clé “compute parameters” du dictionnaire interne associé à la clé courante du dictionnaire de widgets.- La liste ainsi obtenue contient un unique tuple dont le seul élément est la date recherchée, si tant est que l’information soit disponible. - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la table. Il est possible d’appliquer cette fonction sur des vues ou d’autres types de relations, mais la requête produite ne renverra à coup sûr rien. 
- **kwargsdict, optional
- Paramètres supplémentaires ignorés. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL, incluant son tuple de paramètres. 
 
 - Avertissement - Cette requête échouera si PlumePg n’est pas installée sur la base. Par ailleurs, elle ne renverra de date que si le suivi des dates a été activé pour la table considérée. - Notes - Cette fonction est référencée par le module - plume.pg.computer.
- plume.pg.queries.query_get_geom_centroid(schema_name, table_name, geom_name)#
- Requête de calcul côté serveur du centre du rectangle d’emprise d’une couche. - À utiliser comme suit : - >>> query = query_get_geom_centroid('nom du schéma', ... 'nom de la relation', 'nom du champ de géométrie') >>> cur.execute(*query) >>> centroid_geom = cur.fetchone()[0] - À noter que le résultat est une géométrie dont le système de coordonnées n’est pas explicité. Il faudra le récupérer via - query_get_geom_srid(), puis appliquer la fonction- plume.rdf.utils.wkt_with_srid()pour obtenir la représention du centroïde attendue en RDF :- >>> from plume.rdf.utils import wkt_with_srid >>> query = query_get_geom_srid('nom du schéma', 'nom de la relation' ... 'nom du champ de géométrie') >>> cur.execute(*query) >>> srid = cur.fetchone()[0] >>> centroid = wkt_with_srid(centroid_geom, srid) - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
- geom_namestr
- Nom du champ de géométrie. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 - Avertissement - Cette requête échouera si PostGIS n’est pas installé sur la base. Il est donc fortement recommandé de vérifier d’abord la présence de PostGIS avec - query_exists_extension():- >>> query = query_exists_extension('postgis') >>> cur.execute(*query) >>> postgis_exists = cur.fetchone()[0] 
- plume.pg.queries.query_get_geom_extent(schema_name, table_name, geom_name)#
- Requête de calcul côté serveur du rectangle d’emprise d’une couche. - À utiliser comme suit : - >>> query = query_get_geom_extent('nom du schéma', ... 'nom de la relation', 'nom du champ de géométrie') >>> cur.execute(*query) >>> bbox_geom = cur.fetchone()[0] - À noter que le résultat est une géométrie dont le système de coordonnées n’est pas explicité. Il faudra le récupérer via - query_get_geom_srid(), puis appliquer la fonction- plume.rdf.utils.wkt_with_srid()pour obtenir la représention du rectangle d’emprise attendue en RDF :- >>> from plume.rdf.utils import wkt_with_srid >>> query = query_get_geom_srid('nom du schéma', 'nom de la relation' ... 'nom du champ de géométrie') >>> cur.execute(*query) >>> srid = cur.fetchone()[0] >>> bbox = wkt_with_srid(bbox_geom, srid) - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
- geom_namestr
- Nom du champ de géométrie. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 - Avertissement - Cette requête échouera si PostGIS n’est pas installé sur la base. Il est donc fortement recommandé de vérifier d’abord la présence de PostGIS avec - query_exists_extension():- >>> query = query_exists_extension('postgis') >>> cur.execute(*query) >>> postgis_exists = cur.fetchone()[0] 
- plume.pg.queries.query_get_geom_srid(schema_name, table_name, geom_name)#
- Requête de récupération du référentiel de coordonnées d’une couche. - À utiliser comme suit : - >>> query = query_get_geom_srid('nom du schéma', 'nom de la relation' ... 'nom du champ de géométrie') >>> cur.execute(*query) >>> srid = cur.fetchone()[0] - Le référentiel ainsi obtenu est de la forme - 'Autorité:Code'.- Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
- geom_namestr
- Nom du champ de géométrie à considérer. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 - Avertissement - Cette requête échouera si PostGIS n’est pas installé sur la base. Il est donc fortement recommandé de vérifier d’abord la présence de PostGIS avec - query_exists_extension():- >>> query = query_exists_extension('postgis') >>> cur.execute(*query) >>> postgis_exists = cur.fetchone()[0] 
- plume.pg.queries.query_get_modification_date(schema_name, table_name, **kwargs)#
- Requête de récupération de la date de dernière modification d’une table. - À utiliser comme suit : - >>> query = query_get_modification_date(schema_name='nom du schéma', ... table_name='nom de la table', **compute_params) >>> cur.execute(*query) >>> result = cur.fetchall() - compute_paramsest le dictionnaire fourni par la clé “compute parameters” du dictionnaire interne associé à la clé courante du dictionnaire de widgets.- La liste ainsi obtenue contient un unique tuple dont le seul élément est la date recherchée, si tant est que l’information soit disponible. - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la table. Il est possible d’appliquer cette fonction sur des vues ou d’autres types de relations, mais la requête produite ne renverra à coup sûr rien. 
- **kwargsdict, optional
- Paramètres supplémentaires ignorés. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL, incluant son tuple de paramètres. 
 
 - Avertissement - Cette requête échouera si PlumePg n’est pas installée sur la base. Par ailleurs, elle ne renverra de date que si le suivi des dates a été activé pour la table considérée. - Notes - Cette fonction est référencée par le module - plume.pg.computer.
- plume.pg.queries.query_get_relation_kind(schema_name, table_name)#
- Requête qui récupère le type d’une relation PostgreSQL. - À utiliser comme suit : - >>> query = query_get_relation_kind('nom du schéma', ... 'nom de la relation') >>> cur.execute(*query) >>> relkind = cur.fetchone()[0] - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_get_srid_list(schema_name, table_name, **kwargs)#
- Requête de récupération de la liste des référentiels de coordonnées utilisés par les géométries d’une relation. - À utiliser comme suit : - >>> query = query_get_srid_list(schema_name='nom du schéma', ... table_name='nom de la relation', **compute_params) >>> cur.execute(*query) >>> result = cur.fetchall() - compute_paramsest le dictionnaire fourni par la clé “compute parameters” du dictionnaire interne associé à la clé courante du dictionnaire de widgets.- La liste ainsi obtenue contient des tuples dont le premier élément est l’identifiant de l’autorité qui référence le référentiel et le second élément est le code du référentiel dans le registre de cette autorité. - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
- **kwargsdict, optional
- Paramètres supplémentaires ignorés. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL, incluant son tuple de paramètres. 
 
 - Avertissement - Cette requête échouera si PostGIS n’est pas installé sur la base. Il est donc fortement recommandé de vérifier d’abord la présence de PostGIS avec - query_exists_extension():- >>> query = query_exists_extension('postgis') >>> cur.execute(*query) >>> postgis_exists = cur.fetchone()[0] - Notes - Cette fonction est référencée par le module - plume.pg.computer.
- plume.pg.queries.query_get_table_comment(schema_name, table_name)#
- Requête de récupération du descriptif d’une table ou vue. - À utiliser comme suit : - >>> query = query_get_table_comment('nom du schéma', ... 'nom de la relation') >>> cur.execute(*query) >>> old_description = cur.fetchone()[0] - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_insert_or_update_any_table(schema_name, table_name, pk_name, data, columns=None, no_update=False)#
- Requête qui crée ou met à jour un enregistrement d’une table quelconque. - À utiliser comme suit : - >>> query = query_insert_or_update_any_table( ... 'nom du schéma', 'nom de la table', 'nom du champ de clé primaire', ... ['valeur champ 1', 'valeur champ 2', 'valeur champ 3'], ... ['nom champ 1', 'nom champ 2', 'nom champ 3'] ... ) >>> cur.execute(*query) >>> new_data = cur.fetchone()[0] - new_dataest un dictionnaire contenant l’enregistrement mis à jour, tel qu’il est stocké en base.- Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la table. 
- pk_namestr
- Nom du champ de clé primaire. La fonction ne prend pas en charge les tables avec des clés primaires multi-champs. Il est admissible d’utiliser un champ non nul prenant des valeurs uniques qui ne serait pas formellement la clé primaire de la relation. 
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns().
- no_updatebool, default False
- Si - True, la requête n’aura pas d’effet sur les enregistrements pré-existants.
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_insert_or_update_meta_categorie(data, columns=None, no_update=False)#
- Requête qui crée ou met à jour une catégorie de métadonnées dans la table meta_categorie de PlumePg. - À utiliser comme suit : - >>> query = query_insert_or_update_meta_categorie(data) >>> cur.execute(*query) >>> new_data = cur.fetchone()[0] - new_dataest un dictionnaire contenant l’enregistrement mis à jour, tel qu’il est stocké en base.- Pour la mise à jour d’une catégorie commune, il est impératif : - que le champ - originsoit présent et prenne la valeur- 'shared';
- que l’identifiant - pathsoit renseigné.
 - Si l’une au moins de ces deux conditions n’est pas remplie, la catégorie de métadonnée est considérée comme locale. - Parameters:
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns().
- no_updatebool, default False
- Si - True, la requête n’aura pas d’effet sur les enregistrements pré-existants. Dans ce cas, pour une métadonnée locale, la requête ne renvoie rien. Pour une métadonnée commune, elle renvoie l’enregistrement d’origine.
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_insert_or_update_meta_tab(data, columns=None, no_update=False)#
- Requête qui crée ou met à jour un onglet dans la table meta_tab de PlumePg. - À utiliser comme suit : - >>> query = query_insert_or_update_meta_tab(data) >>> cur.execute(*query) >>> new_data = cur.fetchone()[0] - new_dataest un dictionnaire contenant l’enregistrement mis à jour, tel qu’il est stocké en base.- Parameters:
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns().
- no_updatebool, default False
- Si - True, la requête n’aura pas d’effet sur les enregistrements pré-existants. Dans ce cas, la requête ne renvoie rien.
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_insert_or_update_meta_template(data, columns=None, no_update=False)#
- Requête qui crée ou met à jour un modèle de fiches de métadonnées dans la table meta_template de PlumePg. - À utiliser comme suit : - >>> query = query_insert_or_update_meta_template(data) >>> cur.execute(*query) >>> new_data = cur.fetchone()[0] - new_dataest un dictionnaire contenant l’enregistrement mis à jour, tel qu’il est stocké en base.- Parameters:
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns().
- no_updatebool, default False
- Si - True, la requête n’aura pas d’effet sur les enregistrements pré-existants. Dans ce cas, la requête ne renvoie rien.
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_insert_or_update_meta_template_categories(data, columns=None, no_update=False)#
- Requête qui crée ou met à jour une association modèle-catégorie dans la table meta_template_categories de PlumePg. - À utiliser comme suit : - >>> query = query_insert_or_update_meta_template_categories(data) >>> cur.execute(*query) >>> new_data = cur.fetchone()[0] - new_dataest un dictionnaire contenant l’enregistrement mis à jour, tel qu’il est stocké en base.- Parameters:
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist, optional
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns(). Ce paramètre est obligatoire si data est une liste de valeur.
- no_updatebool, default False
- Si - True, la requête n’aura pas d’effet sur les enregistrements pré-existants. Dans ce cas, la requête ne renvoie rien.
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_is_relation_owner(schema_name, table_name)#
- Requête qui vérifie que le rôle courant est membre du propriétaire d’une relation (table, etc.). - À utiliser comme suit : - >>> query = query_is_relation_owner('nom du schéma', 'nom de la relation') >>> cur.execute(*query) >>> res = cur.fetchone() >>> is_owner = res[0] if res else False - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_is_template_admin()#
- Requête qui vérifie que le rôle courant dispose des privilèges nécessaire pour configurer les modèles de fiches de métadonnées de PlumePg. - Concrètement, elle vérifie les privilèges suivants : - USAGEsur le schéma- z_plume.
- INSERT,- UPDATE,- DELETEsur la table d’association des catégories aux modèles,- z_plume.meta_template_categories.
- INSERT,- UPDATE,- DELETEsur la table des modèles,- z_plume.meta_template.
- INSERT,- UPDATE,- DELETEsur la table des catégories,- z_plume.meta_categorie.
- INSERT,- UPDATE,- DELETEsur la table des onlgets,- z_plume.meta_tab.
 - Ces privilèges ne sont pas tout à fait suffisants pour pouvoir éditer les modèles (il faut aussi des droits sur les séquences, les types, etc.), mais en disposer signifer qu’on a voulu habiliter l’utilisateur à les modifier. S’il lui manque des droits annexes, Plume lui fera savoir par un message d’erreur qui permettra à l’administrateur du serveur d’accorder les privilèges manquants. - La requête suppose que l’extension PostgreSQL PlumePg est installée sur le serveur, sans quoi son exécution échouera. - À utiliser comme suit : - >>> query = query_is_template_admin >>> cur.execute(*query) >>> res = cur.fetchone() >>> is_template_admin = res[0] - Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_list_templates(schema_name, table_name)#
- Requête d’import de la liste des modèles disponibles. - À utiliser comme suit : - >>> query = query_list_templates('nom du schéma', 'nom de la relation') >>> cur.execute(*query) >>> templates = cur.fetchall() - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 - Notes - La requête interroge la table - z_plume.meta_templatecréée par l’extension PlumePg. Au lieu d’importer tel quel le contenu de son champ- sql_filter, elle l’exécute et renvoie un booléen indiquant si la condition qu’il spécifie est remplie.
- plume.pg.queries.query_plume_pg_check(min_version='0.3.1', max_version='1.0.0')#
- Requête qui vérifie qu’une version compatible de PlumePg est installée sur la base cible. - Elle s’assure aussi que l’utilisateur dispose des privilèges nécessaires sur les objets de PlumePg. - À utiliser comme suit : - >>> query = query_plume_pg_check(min_version='0.1.0') >>> cur.execute(*query) >>> result = cur.fetchone() - resultest un tuple constitué des éléments suivants :- [0]est un booléen. S’il vaut- True, tout est en ordre pour l’utilisation des modèles de PlumePg. Sinon, les autres éléments du tuple précisent le problème.
- [1]est une liste rappelant la version minimale (incluse) et la version maximale (exclue) de PlumePg compatibles avec la version courante de Plume.
- [2]est la version installée de PlumePg, ou- Nonesi l’extension n’est pas installée sur la base courante.
- [3]est la version de référence de PlumePg disponible sur le serveur, ou- Nonesi l’extension n’est pas disponible sur le serveur.
- [4]est une liste de schémas sur lesquels l’utilisateur ne dispose pas du privilège- USAGErequis.
- [5]est une liste de tables et vues sur lesquelles l’utilisateur ne dispose pas du privilège- SELECTrequis. À noter que les droits sur les tables et vues ne sont contrôlés que si l’utilisateur dispose de tous les privilèges nécessaires sur les schémas.
 - Parameters:
- min_versionstr, optional
- La version minimale de PlumePg compatible avec la version courante de Plume (incluse). Elle doit être de la forme - 'x.y.z'où- x,- yet- zsont des entiers. Par défaut, il s’agira de- PLUME_PG_MIN_VERSION. Il est possible d’indiquer- Nonelorsqu’il n’y a pas de contrainte sur la version minimale.
- max_versionstr, optional
- La version maximale de PlumePg compatible avec la version courante de Plume (exclue). Elle doit être de la forme - 'x.y.z'où- x,- yet- zsont des entiers. Par défaut, il s’agira de- PLUME_PG_MAX_VERSION. Il est possible d’indiquer- None, la version maximale sera alors déduite du premier chiffre de la borne inférieure. Par exemple,- '4.0.0'serait la borne supérieure pour la version de référence- '3.1.1'.
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL et son tuple de paramètres. 
 
 
- plume.pg.queries.query_plume_pg_create()#
- Requête qui active l’extension PlumePg sur la base courante. - La requête générée par cette fonction ne peut être utilisée que si - CREATEétait listé dans le résultat renvoyé par la fonction- query_plume_pg_status().- À utiliser comme suit : - >>> query = query_plume_pg_create() >>> cur.execute(*query) - Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_plume_pg_drop()#
- Requête qui désactive l’extension PlumePg sur la base courante. - La requête générée par cette fonction ne peut être utilisée que si - DROPétait listé dans le résultat renvoyé par la fonction- query_plume_pg_status().- Il est nécessaire de demander confirmation de l’utilisateur avant de réaliser cette action, car elle entraîne la perte de tous les modèles et dates enregistrés. - À utiliser comme suit : - >>> query = query_plume_pg_drop() >>> cur.execute(*query) - Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_plume_pg_import_sample_template(templates=None)#
- Requête qui charge un ou plusieurs modèles pré-configurés sur la base courante. - Cette fonction peut également être utilisée pour réinitialiser les modèles. Elle nécessite évidemment que l’extension PlumePg soit activée sur la base. - À utiliser comme suit : - >>> query = query_plume_pg_import_sample_template() >>> cur.execute(*query) - Parameters:
- templates str or list(str) or tuple(str), optional
- Nom d’un modèle ou plusieurs modèles pré-configurés (sous forme de liste ou de tuple) à charger. Si l’argument n’est pas fourni, tous les modèles pré-configurés sont chargés. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_plume_pg_status()#
- Requête qui évalue l’état de l’extension PlumePg sur la base PostgreSQL cible. - Concrètement, cette requête liste les actions que l’utilisateur est habilité à réaliser vis-à-vis de l’extension PlumePg. À noter qu’à date toutes les actions concernées ne peuvent être réalisées que par un super-utilisateur. - À utiliser comme suit : - >>> query = query_extension_status('nom de l'extension') >>> cur.execute(*query) >>> actions = cur.fetchone()[0] - Le résultat est - Nonesi aucune action n’est possible, sinon il s’agit de la liste des actions disponibles, parmi :- CREATE- activation de l’extension sur la base.
- UPDATE- mise à jour de l’extension.
- DROP- désactivation de l’extension.
- STAMP RECORDING ENABLE- activation du suivi intégral des dates de création et modification des tables. Cette action est listée dès lors que l’un au moins des déclencheurs sur évènement n’est pas actif.
- STAMP RECORDING DISABLE- désactivation du suivi intégral des dates. Cette action est listée dès lors que l’un au moins des déclencheurs sur évènement est actif.
- STAMP TO METADATA ENABLE- activation de l’enregistrement automatique des dates dans les métadonnées.
- STAMP TO METADATA DISABLE- désactivation de l’enregistrement automatique des dates dans les métadonnées.
 - Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 - Voir aussi - query_plume_pg_check()
- Pour vérifier la compatibilité des versions de Plume et PlumePg. 
 
- plume.pg.queries.query_plume_pg_update()#
- Requête qui met à jour l’extension PlumePg sur la base courante. - La requête générée par cette fonction ne peut être utilisée que si - UPDATEétait listé dans le résultat renvoyé par la fonction- query_plume_pg_status().- À utiliser comme suit : - >>> query = query_plume_pg_update() >>> cur.execute(*query) - Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_read_any_enum_type(schema_name, type_name)#
- Requête qui récupère les valeurs d’un type énuméré quelconque. - À utiliser comme suit : - >>> query = query_read_any_enum_type( ... 'nom du schéma', 'nom du type' ... ) >>> cur.execute(*query) >>> enum_values = cur.fetchone()[0] - enum_valuesest une liste triée par ordre alphabétique.- Parameters:
- schema_namestr
- Nom du schéma. 
- type_namestr
- Nom du type énuméré. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_read_any_row(schema_name, table_name, pk_name, data, columns=None)#
- Requête qui renvoie une ligne de données d’une table quelconque. - À utiliser comme suit : - >>> query = query_read_any_row( ... 'nom du schéma', 'nom de la table', 'nom du champ de clé primaire', ... ['valeur champ 1', 'valeur de la clé primaire', 'valeur champ 3'], ... ['nom champ 1', 'nom du champ de clé primaire', 'nom champ 3'] ... ) >>> cur.execute(*query) >>> row = cur.fetchone() - La fonction renvoie une erreur si data et columns ne contiennent pas de valeur pour le champ de clé primaire. Il ne pose aucun problème de fournir des valeurs pour d’autres champs, même si la fonction n’en fera rien. - Si l’identifiant spécifié avait bien une correspondance, - row[0]sera un dictionnaire contenant les noms et valeurs des champs de l’enregistrement.- Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la table. 
- pk_namestr
- Nom du champ de clé primaire. La fonction ne prend pas en charge les tables avec des clés primaires multi-champs. Il est admissible d’utiliser un champ non nul prenant des valeurs uniques qui ne serait pas formellement la clé primaire de la relation. 
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns(). Ce paramètre est obligatoire si data est une liste de valeur.
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_read_enum_meta_compute()#
- Requête qui récupère les valeurs admises par le champ compute des tables meta_categorie et meta_template_categories. - À utiliser comme suit : - >>> query = query_read_enum_meta_compute() >>> cur.execute(*query) >>> enum_values = cur.fetchone()[0] - enum_valuesest une liste triée par ordre alphabétique.- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_read_enum_meta_datatype()#
- Requête qui récupère les valeurs admises par le champ datatype des tables meta_categorie et meta_template_categories. - À utiliser comme suit : - >>> query = query_read_enum_meta_datatype() >>> cur.execute(*query) >>> enum_values = cur.fetchone()[0] - enum_valuesest une liste triée par ordre alphabétique.- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_read_enum_meta_geo_tool()#
- Requête qui récupère les valeurs admises par le champ geo_tools des tables meta_categorie et meta_template_categories. - À utiliser comme suit : - >>> query = query_read_enum_meta_geo_tool() >>> cur.execute(*query) >>> enum_values = cur.fetchone()[0] - enum_valuesest une liste triée par ordre alphabétique.- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_read_enum_meta_special()#
- Requête qui récupère les valeurs admises par le champ special des tables meta_categorie et meta_template_categories. - À utiliser comme suit : - >>> query = query_read_enum_meta_special() >>> cur.execute(*query) >>> enum_values = cur.fetchone()[0] - enum_valuesest une liste triée par ordre alphabétique.- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_read_meta_categorie()#
- Requête qui importe le contenu de la table des catégories de métadonnées (meta_categorie) de PlumePg. - À utiliser comme suit : - >>> query = query_read_meta_categorie() >>> cur.execute(*query) >>> categories = cur.fetchall() - categoriesest une liste de tuples, où chaque tuple correspond à une catégorie. Les tuples contiennent un unique élément : un dictionnaire dont les clés sont les noms des champs de la table des catégories et les valeurs sont les valeurs contenues dans ces champs pour la catégorie considéré. L’ordre des clés ne respecte pas l’ordre des champs dans la table.- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_read_meta_tab()#
- Requête qui importe le contenu de la table des onglets (meta_tab) de PlumePg. - À utiliser comme suit : - >>> query = query_read_meta_tab() >>> cur.execute(*query) >>> tabs = cur.fetchall() - tabsest une liste de tuples, où chaque tuple correspond à un onglet. Les tuples contiennent un unique élément : un dictionnaire dont les clés sont les noms des champs de la table des onglets et les valeurs sont les valeurs contenues dans ces champs pour l’onglet considéré. L’ordre des clés ne respecte pas l’ordre des champs dans la table.- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_read_meta_template()#
- Requête qui importe le contenu de la table des modèles (meta_template) de PlumePg. - À utiliser comme suit : - >>> query = query_read_meta_template() >>> cur.execute(*query) >>> templates = cur.fetchall() - templatesest une liste de tuples, où chaque tuple correspond à un modèle. Les tuples contiennent un unique élément : un dictionnaire dont les clés sont les noms des champs de la table des modèles et les valeurs sont les valeurs contenues dans ces champs pour le modèle considéré. L’ordre des clés ne respecte pas l’ordre des champs dans la table.- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_read_meta_template_categories()#
- Requête qui importe le contenu de la table d’association des catégories aux modèles (meta_template_categories) de PlumePg. - À utiliser comme suit : - >>> query = query_read_meta_template_categories() >>> cur.execute(*query) >>> template_categories = cur.fetchall() - template_categoriesest une liste de tuples, où chaque tuple correspond à un couple modèle + catégorie. Les tuples contiennent un unique élément : un dictionnaire dont les clés sont les noms des champs de la table d’association et les valeurs sont les valeurs contenues dans ces champs pour le couple modèle + catégorie considéré. L’ordre des clés ne respecte pas l’ordre des champs dans la table.- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_stamp_recording_disable()#
- Requête qui désactive entièrement le suivi des dates de création/modification des tables via PlumePg. - La requête générée par cette fonction ne peut être utilisée que si - STAMP RECORDING DISABLEétait listé dans le résultat renvoyé par la fonction- query_plume_pg_status().- À utiliser comme suit : - >>> query = query_stamp_recording_disable() >>> cur.execute(*query) - Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_stamp_recording_enable()#
- Requête qui active le suivi complet des dates de création/modification des tables via PlumePg. - La requête générée par cette fonction ne peut être utilisée que si - STAMP RECORDING ENABLEétait listé dans le résultat renvoyé par la fonction- query_plume_pg_status().- À utiliser comme suit : - >>> query = query_stamp_recording_enable() >>> cur.execute(*query) - Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_stamp_to_metadata_disable()#
- Requête qui désactive la copie automatique des dates enregistrées par le système de suivi de PlumePg dans les fiches de métadonnées. - La requête générée par cette fonction ne peut être utilisée que si - STAMP TO METADATA DISABLEétait listé dans le résultat renvoyé par la fonction- query_plume_pg_status().- À utiliser comme suit : - >>> query = query_stamp_to_metadata_disable() >>> cur.execute(*query) - Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_stamp_to_metadata_enable()#
- Requête qui active la copie automatique des dates enregistrées par le système de suivi de PlumePg dans les fiches de métadonnées. - La requête générée par cette fonction ne peut être utilisée que si - STAMP TO METADATA ENABLEétait listé dans le résultat renvoyé par la fonction- query_plume_pg_status().- À utiliser comme suit : - >>> query = query_stamp_to_metadata_enable() >>> cur.execute(*query) - Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_template_tabs(tpl_label)#
- Requête d’import des onglets utilisés par un modèle. - À utiliser comme suit : - >>> query = query_template_tabs('nom du modèle') >>> cur.execute(*query) >>> tabs = cur.fetchall() - Parameters:
- tpl_labelstr
- Nom du modèle choisi. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 - Notes - La requête interroge les tables - z_plume.meta_tabet- z_plume.meta_template_categoriescréées par l’extension PlumePg. Elle ne doit donc être exécutée qu’après contrôle de l’existence de l’extension.- L’ordre de la liste résultant de l’exécution de la requête est l’ordre dans lequel le modèle prévoit que les onglets soient présentés à l’utilisateur. 
- plume.pg.queries.query_update_any_table(schema_name, table_name, pk_name, data, columns=None)#
- Requête qui met à jour un enregistrement existant d’une table quelconque. - La requête sera sans effet si l’enregistrement n’existait pas. - À utiliser comme suit : - >>> query = query_update_any_table( ... 'nom du schéma', 'nom de la table', 'nom du champ de clé primaire', ... ['valeur champ 1', 'valeur champ 2', 'valeur champ 3'], ... ['nom champ 1', 'nom champ 2', 'nom champ 3'] ... ) >>> cur.execute(*query) >>> new_data = cur.fetchone()[0] - new_dataest un dictionnaire contenant l’enregistrement mis à jour, tel qu’il est stocké en base.- Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la table. 
- pk_namestr
- Nom du champ de clé primaire. La fonction ne prend pas en charge les tables avec des clés primaires multi-champs. Il est admissible d’utiliser un champ non nul prenant des valeurs uniques qui ne serait pas formellement la clé primaire de la relation. 
- datalist or dict
- data représente un enregistrement de la table. Il peut s’agir de : - La liste des valeurs des champs, dans l’ordre de columns, qui doit alors être renseigné. 
- Un dictionnaire dont les clés sont les noms des champs. columns est ignoré dans ce cas. 
 
- columnslist
- Liste des noms des champs de la table des onglets pour lesquels data fournit des valeurs, exactement dans le même ordre. Il est possible d’obtenir la liste complète avec - query_get_columns().
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_update_column_comment(schema_name, table_name, column_name, description='')#
- Requête de mise à jour du descriptif d’un champ. - À utiliser comme suit : - >>> query = query_update_column_comment('nom du schéma', ... 'nom de la relation', 'nom du champ', ... 'Nouveau descriptif du champ') >>> cur.execute(*query) - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
- column_namestr
- Nom du champ. 
- descriptionstr, optional
- Le nouveau descriptif du champ. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
 
- plume.pg.queries.query_update_columns_comments(schema_name, table_name, widgetsdict)#
- Requête de mise à jour des descriptifs des champs d’une table. - À utiliser comme suit : - >>> query = query_update_columns_comments('nom du schéma', ... 'nom de la relation', widgetsdict) >>> if query: ... cur.execute(*query) - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
- widgetsdictplume.rdf.widgetsdict.WidgetsDict
- Le dictionnaire de widgets qui contient les descriptifs actualisés des champs. 
 
- Returns:
- PgQueryWithArgs or None
- Une requête prête à être envoyée au serveur PostgreSQL. La fonction renvoie - Nonesi elle ne trouve aucun descriptif de champ dans le dictionnaire de widgets.
 
 - Notes - À noter que cette requête pourrait échouer si des champs ont été supprimés ou renommés entre temps. 
- plume.pg.queries.query_update_table_comment(schema_name, table_name, relation_kind='r', description='')#
- Requête de mise à jour du descriptif d’une table ou vue. - À utiliser comme suit : - >>> query = query_update_table_comment('nom du schéma', ... 'nom de la relation', 'type de relation', ... 'Nouveau descriptif') >>> cur.execute(*query) - Parameters:
- schema_namestr
- Nom du schéma. 
- table_namestr
- Nom de la relation (table, vue…). 
- relation_kind{“r”, “v”, “m”, “f”, “p”}, optional
- Le type de relation. - 'r'par défaut, ce qui correspond à une table simple.
- descriptionstr, optional
- Le nouveau descriptif. 
 
- Returns:
- PgQueryWithArgs
- Une requête prête à être envoyée au serveur PostgreSQL. 
 
- Raises:
- UnknownParameterValue
- Si le type de relation n’est pas l’une des valeurs autorisées.