Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#26 Re : Général » Construction de bases avec vues modifiables » 02/03/2018 13:46:07
j'ai implementé cette méthode sur une table de 400 records jointe à deux autres tables (foreign) avec un front-end access/vba (mon client aime ça).
la vue était une linked table en Access et tout semble aller correctement
cela sera-t-il le cas avec une table de plusieurs milliers de records ?
de toute façon, il faut faire des forms qui sont updatables alors qu'elles sont basées sur des queries multi-tables !
sans le trigger instead of i,u,d, je ne vois comment on pourrait faire
#27 Re : Général » Foreign DW : DETAIL: FATAL: sorry, too many clients already » 02/03/2018 13:41:39
un grand merci à vous deux !
#28 Re : Général » Construction de bases avec vues modifiables » 27/02/2018 19:05:36
on peut faire des update, insert et delete dans des vues arbitrairement complexes avec autant de jointures que l'on veut avec un trigger
INSTEAD OF INSERT OR DELETE OR UPDATE
sur la view.
#29 Re : Général » Foreign DW : DETAIL: FATAL: sorry, too many clients already » 27/02/2018 17:55:56
Encore merci pour votre tenacité.
Je suis le seul, pour le moment à faire des connexions fdw. Parce que je fais des tests qui créent et droppent des fdw servers.
Je pensais que le
drop server if exists fdw_utilities cascade;devait remettre les pendules à zéro.
Ceci dit, le pg_ctl restart a aujourd'hui terminé (droppé) les connexions.
Et je peux continuer à tester. J'ai des problèmes au niveau des permissions. Si je définis des permissions aux niveau des foreign tables, je suppose que je dois le faire au niveau des tables de base. Non ?
#30 Re : Général » Foreign DW : DETAIL: FATAL: sorry, too many clients already » 27/02/2018 17:15:54
le
ALTER FUNCTION public.create_fdw_utilities(text, text, text, text)
après le create foreign table "rubin_permissions" (
est un problème de copier/coller
l'éditeur de pgadmin4 est aussi dangereux que sa procédure d'installation
#31 Re : Général » Foreign DW : DETAIL: FATAL: sorry, too many clients already » 27/02/2018 17:11:47
C'est moi qui crée les connexions en testant les functions qui créent les fdws. Ca c'est sûr. Ce n'est personne d'autre. Un exemple :
-- FUNCTION: public.create_fdw_utilities(text, text, text, text)
-- DROP FUNCTION public.create_fdw_utilities(text, text, text, text);
CREATE OR REPLACE FUNCTION public.create_fdw_utilities(
this_host_address text,
this_database_name text,
this_user_name text,
this_password text)
RETURNS void
LANGUAGE 'plpgsql'
COST 100
VOLATILE SECURITY DEFINER
ROWS 0
AS $BODY$
declare
sql_stmt text;
port_number text;
this_table_name text;
begin
port_number = '5432';
drop server if exists fdw_utilities cascade;
sql_stmt = 'create server fdw_utilities '
|| ' foreign data wrapper postgres_fdw '
|| ' options (host'
|| ''''
|| this_host_address
|| ''''
|| ', dbname '
|| ''''
|| this_database_name
|| ''''
|| ', port'
|| ''''
|| port_number
|| ''''
|| ')';
execute sql_stmt;
sql_stmt = 'create user mapping for public '
|| ' server fdw_utilities '
|| ' options (user '
|| ''''
|| this_user_name
|| ''''
|| ', password '
|| ''''
|| this_password
|| ''''
|| ')';
execute sql_stmt;
create foreign table "rubin_permissions" (
pg_user_name text,
permissions text,
db_name text,
pg_server_name text,
pg_server_address text
) server fdw_utilitiesALTER FUNCTION public.create_fdw_utilities(text, text, text, text)
OWNER TO rubin;
options (
schema_name 'public',
table_name 'rubin_permissions'
);
sql_stmt = 'create view public.user_rubin_permissions as select '
|| ' * from rubin_permissions where pg_user_name = '
|| ''''
|| this_user_name
|| '''';
execute sql_stmt;
sql_stmt = 'grant usage on foreign server '
|| this_fdw_server_name
|| ' to '
|| this_user_name;
execute sql_stmt;
sql_stmt = 'grant usage on schema public to '
|| this_user_name;
execute sql_stmt;
sql_stmt = 'grant all on public.user_rubin_permissions to '
|| this_user_name;
execute sql_stmt;
end
ALTER FUNCTION public.create_fdw_utilities(text, text, text, text)
OWNER TO rubin;
$BODY$;Devrais-je faire un
drop server if exists fdw_utilities cascade;quand le user quitte le front-end ?
Merci pour votre aide car dans les livres, tout est facile...
"Grise est la théorie, vert est l'arbre de la vie" Goethe ;-))
#32 Re : Général » Foreign DW : DETAIL: FATAL: sorry, too many clients already » 27/02/2018 15:07:50
Pour le moment, il n'y a que moi qui crée des fdw servers en développement. Il n'y donc que moi qui crée toutes ces connexions. C'est étrange !
mais plus tard, chaque fois qu'un utilisateur se connectera, il créera des fdws. (Plusieurs dbs sur plusieurs serveurs. Le user se connecte à son sandbox où il a ses tables locales et les tables foreign)
Faut-il que je fasse des drop servers fdw quand le user quitte l'application?
Merci à tous deux
#33 Re : Général » Foreign DW : DETAIL: FATAL: sorry, too many clients already » 27/02/2018 11:50:50
Merci pour votre réponse.
Si je vous comprends, je devrais augmenter max_connections ?
Mais commentexpliquer que pg_ctl restart ne remet pas les compteurs à zéro ?
#34 Général » Foreign DW : DETAIL: FATAL: sorry, too many clients already » 26/02/2018 18:42:46
- Michel Depiesse
- Réponses : 11
Bonjour,
J'avais utilisé des FDWs dans un projet et ça marchait bien.
Je recommence dans un autre projet.
Je dois jouer plusieurs fois le script qui crée le serveur FDW car j'ai un problème de permission sur la foreign table.
Et tout d'un coup, quand j'essaie de faire un select sur la foreign table, je reçois :
ERROR: could not connect to server "fdw_utilities"
DETAIL: FATAL: sorry, too many clients already
FATAL: sorry, too many clients alreadyet une chiée de
CONTEXT: Remote SQL command: SELECT pg_user_name, permissions, db_name, pg_server_name, pg_server_address FROM public.list_permissions
Remote SQL command: SELECT pg_user_name, permissions, db_name, pg_server_name, pg_server_address FROM public.list_permissions
Remote SQL command: SELECT pg_user_name, permissions, db_name, pg_server_name, pg_server_address FROM public.list_permissionsje fais pg_ctl restart
ça continue
j'ai pourtant
shared_buffers = 2048MB
max_connections = 100
Je pédale dans la choucroute et je vous appelle à l'aide !
#35 Re : Général » Insert / update / delete » 05/01/2018 11:24:43
Merci ! Et bon week-end à vous et à Dalibo
#36 Re : Général » Insert / update / delete » 04/01/2018 18:46:35
Merci mais je ne vois pas si je peux faire
CREATE MATERIALIZED VIEW mymatview ...
INSERT INTO mymatview...
DELETE FROM mymatview...
UPDATE mymatview...
Encore merci et bonne soirée
#37 Général » Insert / update / delete » 04/01/2018 17:14:13
- Michel Depiesse
- Réponses : 4
Bonjour,
Est-il possible de faire des insert / update / delete sur une vue matérialisée étant entendu qu'on pourrait le faire avec une vue ordinaire ayant le même select ?
On en parle sans doute dans la documentation mais je n'ai pas trouvé où.
Merci pour votre attention
#38 Re : Général » Pour qu'un DBA ne puisse pas voir les données » 15/11/2017 10:56:08
Merci à tous deux pour vos réponses.
Ceci dit, en cherchant avec "dba cannot see data", on trouve pas mal d'information concernant SQL Server...
Ce qui voudrait, semble-t-il, dire que le raisonnenement de Guillaume n'est pas absolu...
Affaire à suivre, semble-t-il...
#39 Général » Pour qu'un DBA ne puisse pas voir les données » 13/11/2017 10:08:16
- Michel Depiesse
- Réponses : 4
Bonjour,
J'ai un client un peu parano. Il veut que j'administre ses dbs mais il ne veut pas que je puisse voir les données.
PGSql donne-t-il un mécanisme pour cela ?
Merci pour votre attention,
MD
#40 Re : Réplication » pg_dump d'un schema et pg_restore dans un autre schema » 26/09/2017 11:12:33
Merci pour cette réponse rapide et cette explication claire.
Bonne journée à vous et bonne chance dans toutes vos projets
#41 Réplication » pg_dump d'un schema et pg_restore dans un autre schema » 26/09/2017 10:52:49
- Michel Depiesse
- Réponses : 2
Bonjour,
J'aimerais savoir s'il est possible de faire la chose suivante :
1/ pg_dump du schema public d'une db
2/ pg_restore de ce backup vers une autre db dans un schema autre que public
Je n'arrive pas à interpréter ce que j'ai vu sur le net.
Il y aurait dans la db de destination, en plus du schema public, des schemas qui serviraient pour faire des restores de dbs utilisées par des collaborateurs itinérants lorsqu'ils reviennent au bureau. La db fait moins de 5 megas.
Merci pour votre attention et bonne journée
#42 Re : PL/pgSQL » extension ltree » 10/09/2017 22:48:09
Merci !
Je vais envoyer un message aux russes....
#43 Re : PL/pgSQL » extension ltree » 10/09/2017 15:10:51
et avec
select
substring(input_line, char_length(substring(input_line from '[0-9.]*[ ]')) + 1) as node_name
,text2ltree(substring(input_line from '[0-9.]*')) as node_path
from staging;j'me ramasse
psql:load.sql:4: ERROR: syntax error
DETAIL: Unexpected end of line.#44 PL/pgSQL » extension ltree » 10/09/2017 12:48:20
- Michel Depiesse
- Réponses : 4
Bonjour,
Dans un précédent projet en 9.5, j'avais fait :
create table ltree_node (
node_id integer primary key
default nextval('ltree_node_sequence')
,node_name text
,node_path ltree
);
create index path_gist_idx on ltree_node using gist(node_path);
insert into ltree_node(node_name, node_path) select
substring(input_line,
char_length(substring(
input_line from '[0-9.]*[ ]')) + 1) as node_name
,cast(substring(input_line from '[0-9.]*') as ltree) as node_path
from tree_staging;Et ça marchait ! Maintenant, je suis en 9.6 et ça ne marche pas !
Le
as ltree me vaut
ERROR: syntax error
DETAIL: Unexpected end of line.
********** Error **********
ERROR: syntax error
SQL state: 42601
Detail: Unexpected end of line.idem avec
substring(input_line from '[0-9.]*')::ltreeJe ne trouve rien sur le net... Qqun pourrait-il éclairer ma lanterne ?
Merci !
#45 Re : pgAdmin4 » Problème connexion server - PgAdmin 4 » 24/08/2017 16:02:06
un # -*- coding: utf-8 -*- qui manque qq part ?
dans quelle langue travaillez-vous ?
#46 Général » Linux / C /programmation fonctionnelle » 23/08/2017 09:41:01
- Michel Depiesse
- Réponses : 0
Bonjour,
Mes connaissances en Linux et C ayant été acquises il y a longtemps, j'aimerais les rafraîchir.
Quels livres (en anglais) pourriez-vous me conseiller ?
Certains me diront peut-être que cette question n'a rien à faire sur ce forum.
Pour ma part, je pense que des spécialistes PostgreSQL me donneront certainement de bons conseils puisque mon but est de devenir un spécialiste PostgreSQL.
Par ailleurs, je pense apprendre un langage généraliste de pointe. Pensez-vous que dans le futur, les langages de programmation fonctionelle vont se développer dans le monde PostgreSQL? Je trouve OCaml fort cartésien.
Merci pour votre attention,
elephantsql.wordpress.com/
#47 Re : pgAdmin4 » Error message undefined » 20/08/2017 12:44:02
Merci !
Mais tel est bien le cas ! Un mystère de plus avec pgadmin4
la semaine prochaine, je vais installer pgadmin4 sur windows10 chez mon client
j'ai vu une abondante littérature à ce sujet sur le net
ce serait bien que pgamdin4 soit aussi facile à installer que mysql workbench
#48 Re : pgAdmin4 » Installation sur Ubuntu 16.04 » 17/08/2017 13:29:08
Problème résolu : j'ai effacé le fichier pgadmin.db que j'ai finalement trouvé dans mon home_directory/.pgadmin/pgadmin4.db
et j'ai restarté
il était temps, je pensais conseiller à mon client de refaire l'application en COBOL
#49 Re : pgAdmin4 » Installation sur Ubuntu 16.04 » 17/08/2017 09:54:54
je reçois le message : ERROR pgadmin: The desktop user pgadmin4@pgadmin.org was not found in the configuration database.
mais si je fais : find . -name 'pgadmin4.db', je ne trouve rien.
Franchement, je suis très inquiet...
#50 Re : pgAdmin4 » Installation sur Ubuntu 16.04 » 16/08/2017 17:07:35
Merci. Je viens d'envoyer un message à redmine.
Avez-vous vu sur le site de pgadmin ne décrit pas de procédure d'installation ?
Sur mon ordi perso, j'ai mis 1 heures à installer pg 9.6 et 5 heures à installer pgadmin4.
Et sur l'ordi du client, je pédale dans la choucroute depuis 4 heures.
Sans doute que mon QI n'est pas assez haut pour pgadmin4 (sur ubuntu 16.04) ![]()