From 2d468c59a33b7657a0f5fa288ad9b253cd759727 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Mar 2005 14:00:20 +0000 Subject: [PATCH] =?UTF-8?q?Fix:=20Pb=20sur=20g=E9n=E9ration=20index=20sur?= =?UTF-8?q?=20double=20cl=E9s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/dolibarr_mysql2pgsql.pl | 7 ++++--- mysql/tables/llx_usergroup_rights.key.sql | 2 +- pgsql/tables/llx_contact_facture.sql | 2 +- pgsql/tables/llx_so_gr.sql | 2 +- pgsql/tables/llx_user_param.sql | 2 +- pgsql/tables/llx_usergroup_rights.key.sql | 2 +- pgsql/tables/llx_usergroup_rights.sql | 2 +- pgsql/tables/llx_usergroup_user.sql | 2 +- 8 files changed, 11 insertions(+), 10 deletions(-) diff --git a/build/dolibarr_mysql2pgsql.pl b/build/dolibarr_mysql2pgsql.pl index d8e52105c80..3b702687b50 100644 --- a/build/dolibarr_mysql2pgsql.pl +++ b/build/dolibarr_mysql2pgsql.pl @@ -266,10 +266,11 @@ foreach my $file (keys %filelist) { # unique (field) et unique (field1, field2 ...) if (/unique\s*\(([\w,\s]+)\)/i) { s/unique\s*\(([\w,\s]+)\)/UNIQUE\($1\)/i; - my $idxname="idx_${table}_$1"; - $idxname =~ s/\W/_/g; + my $fieldlist="$1"; + my $idxname="idx_${table}_${fieldlist}"; + $idxname =~ s/\W/_/g; $idxname =~ tr/_/_/s; $create_sql.=$_; - $create_index .= "CREATE INDEX $idxname ON $table ($1);\n"; + $create_index .= "CREATE INDEX $idxname ON $table ($fieldlist);\n"; next; } diff --git a/mysql/tables/llx_usergroup_rights.key.sql b/mysql/tables/llx_usergroup_rights.key.sql index 7d9d8d9d1f6..467d87f138f 100644 --- a/mysql/tables/llx_usergroup_rights.key.sql +++ b/mysql/tables/llx_usergroup_rights.key.sql @@ -20,7 +20,7 @@ -- -- =========================================================================== --- Supprimme orhpelins pour permettre montée de la clé +-- Supprime orhpelins pour permettre montée de la clé DELETE llx_usergroup_rights FROM llx_usergroup_rights LEFT JOIN llx_usergroup ON llx_usergroup_rights.fk_usergroup = llx_usergroup.rowid WHERE llx_usergroup.rowid IS NULL; ALTER TABLE llx_usergroup_rights ADD FOREIGN KEY (fk_usergroup) REFERENCES llx_usergroup (rowid); diff --git a/pgsql/tables/llx_contact_facture.sql b/pgsql/tables/llx_contact_facture.sql index 31e12c8500c..9d1aee214d2 100644 --- a/pgsql/tables/llx_contact_facture.sql +++ b/pgsql/tables/llx_contact_facture.sql @@ -35,4 +35,4 @@ create table llx_contact_facture UNIQUE(fk_soc, fk_contact) ); -CREATE INDEX idx_llx_contact_facture_fk_soc__fk_contact ON llx_contact_facture (); +CREATE INDEX idx_llx_contact_facture_fk_soc_fk_contact ON llx_contact_facture (fk_soc, fk_contact); diff --git a/pgsql/tables/llx_so_gr.sql b/pgsql/tables/llx_so_gr.sql index 330dc3f810f..d6a379f2d88 100644 --- a/pgsql/tables/llx_so_gr.sql +++ b/pgsql/tables/llx_so_gr.sql @@ -35,4 +35,4 @@ create table llx_so_gr UNIQUE(fk_soc, fk_groupe) ); -CREATE INDEX idx_llx_so_gr_fk_soc__fk_groupe ON llx_so_gr (); +CREATE INDEX idx_llx_so_gr_fk_soc_fk_groupe ON llx_so_gr (fk_soc, fk_groupe); diff --git a/pgsql/tables/llx_user_param.sql b/pgsql/tables/llx_user_param.sql index fc4547f598c..73532a2d3c4 100644 --- a/pgsql/tables/llx_user_param.sql +++ b/pgsql/tables/llx_user_param.sql @@ -35,4 +35,4 @@ create table llx_user_param UNIQUE(fk_user,page,param) ); -CREATE INDEX idx_llx_user_param_fk_user_page_param ON llx_user_param (); +CREATE INDEX idx_llx_user_param_fk_user_page_param ON llx_user_param (fk_user,page,param); diff --git a/pgsql/tables/llx_usergroup_rights.key.sql b/pgsql/tables/llx_usergroup_rights.key.sql index 0316eab8afe..c23e9d9b8f6 100644 --- a/pgsql/tables/llx_usergroup_rights.key.sql +++ b/pgsql/tables/llx_usergroup_rights.key.sql @@ -24,7 +24,7 @@ -- -- =========================================================================== --- Supprimme orhpelins pour permettre montée de la clé +-- Supprime orhpelins pour permettre montée de la clé DELETE llx_usergroup_rights FROM llx_usergroup_rights LEFT JOIN llx_usergroup ON llx_usergroup_rights.fk_usergroup = llx_usergroup.rowid WHERE llx_usergroup.rowid IS NULL; ALTER TABLE llx_usergroup_rights ADD FOREIGN KEY (fk_usergroup) REFERENCES llx_usergroup (rowid); diff --git a/pgsql/tables/llx_usergroup_rights.sql b/pgsql/tables/llx_usergroup_rights.sql index 10214e4d2bd..8cfeec66201 100644 --- a/pgsql/tables/llx_usergroup_rights.sql +++ b/pgsql/tables/llx_usergroup_rights.sql @@ -33,5 +33,5 @@ create table llx_usergroup_rights UNIQUE(fk_usergroup,fk_id) ); -CREATE INDEX idx_llx_usergroup_rights_fk_usergroup_fk_id ON llx_usergroup_rights (); +CREATE INDEX idx_llx_usergroup_rights_fk_usergroup_fk_id ON llx_usergroup_rights (fk_usergroup,fk_id); diff --git a/pgsql/tables/llx_usergroup_user.sql b/pgsql/tables/llx_usergroup_user.sql index 721b32baa94..120b2e0a962 100644 --- a/pgsql/tables/llx_usergroup_user.sql +++ b/pgsql/tables/llx_usergroup_user.sql @@ -33,4 +33,4 @@ create table llx_usergroup_user UNIQUE(fk_user,fk_usergroup) ); -CREATE INDEX idx_llx_usergroup_user_fk_user_fk_usergroup ON llx_usergroup_user (); +CREATE INDEX idx_llx_usergroup_user_fk_user_fk_usergroup ON llx_usergroup_user (fk_user,fk_usergroup);