[SPIP Zone] [Spip-zone-commit] r15313 - /_plugins_/_stable_/forms/forms_et_tables_1_9_1/base/forms.php

Ca n'est pas plutot dans spip qu'est le bug ?
Ca concerne bien le probleme avec la SVN ?
Parce que declarer les tables auxiliaires dans tables_des_tables n'est pas completement inutile, il m'arrive parfois de faire des boucles sur l'une ou l'autre d'entre elle pour des raisons de perfo.
Cedric

spipcarto@gmail.com a écrit :

Author: spipcarto@gmail.com
Date: Tue Sep 18 01:05:02 2007
New Revision: 15313

Log:
ne pas declarer les tables_auxiliaires dans table_des_tables (embrouille trouver_table donc plante trouver_cles_table)

clé primaire double plutot qu'un index (comme dans spip...)

Modified:
    _plugins_/_stable_/forms/forms_et_tables_1_9_1/base/forms.php

Modified: _plugins_/_stable_/forms/forms_et_tables_1_9_1/base/forms.php

--- _plugins_/_stable_/forms/forms_et_tables_1_9_1/base/forms.php (original)
+++ _plugins_/_stable_/forms/forms_et_tables_1_9_1/base/forms.php Tue Sep 18 01:05:02 2007
@@ -146,7 +146,7 @@
   "id_article" => "BIGINT (21) DEFAULT '0' NOT NULL");
  $spip_forms_articles_key = array(
- "KEY id_form" => "id_form",
+ "PRIMARY KEY" => "id_form, id_article",
   "KEY id_article" => "id_article");
  $tables_auxiliaires['spip_forms_articles'] = array(
@@ -159,7 +159,7 @@
   "article_ref" => "ENUM('non', 'oui') DEFAULT 'non' NOT NULL");
  $spip_forms_donnees_articles_key = array(
- "KEY id_donnee" => "id_donnee",
+ "PRIMARY KEY" => "id_donnee, id_article",
   "KEY id_article" => "id_article");
  $tables_auxiliaires['spip_forms_donnees_articles'] = array(
@@ -172,7 +172,7 @@
   "id_rubrique" => "BIGINT (21) DEFAULT '0' NOT NULL");
  $spip_forms_donnees_rubriques_key = array(
- "KEY id_donnee" => "id_donnee",
+ "PRIMARY KEY" => "id_donnee, id_rubrique",
   "KEY id_rubrique" => "id_rubrique");
  $tables_auxiliaires['spip_forms_donnees_rubriques'] = array(
@@ -186,7 +186,7 @@
   "id_donnee_liee" => "BIGINT (21) DEFAULT '0' NOT NULL" );
  $spip_forms_donnees_donnees_key = array(
- "KEY id_donnee" => "id_donnee",
+ "PRIMARY KEY" => "id_donnee, id_donnee_liee",
   "KEY id_donnee_liee" => "id_donnee_liee");
  $tables_auxiliaires['spip_forms_donnees_donnees'] = array(
@@ -198,7 +198,7 @@
   "id_auteur" => "BIGINT (21) DEFAULT '0' NOT NULL");
  $spip_forms_donnees_auteurs_key = array(
- "KEY id_donnee" => "id_donnee",
+ "PRIMARY KEY" => "id_donnee, id_auteur",
   "KEY id_auteur" => "id_auteur");
  $tables_auxiliaires['spip_forms_donnees_auteurs'] = array(
@@ -236,13 +236,6 @@
$table_des_tables['forms_champs'] = 'forms_champs';
$table_des_tables['forms_champs_choix'] = 'forms_champs_choix';
$table_des_tables['forms_donnees']='forms_donnees';
-$table_des_tables['forms_donnees_champs']='forms_donnees_champs';
-$table_des_tables['forms_articles']='forms_articles';
-$table_des_tables['forms_donnees_articles']='forms_donnees_articles';
-$table_des_tables['forms_donnees_auteurs']='forms_donnees_auteurs';
-$table_des_tables['forms_donnees_rubriques']='forms_donnees_rubriques';
-$table_des_tables['documents_donnees']='documents_donnees';
-$table_des_tables['forms_donnees_donnees']='forms_donnees_donnees';
  global $exceptions_des_jointures;
$exceptions_des_jointures['type_form'] = array('spip_forms', 'type_form');

_______________________________________________
Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit
  

cedric.morin@yterium.com a écrit :

Ca n'est pas plutot dans spip qu'est le bug ?
Ca concerne bien le probleme avec la SVN ?
Parce que declarer les tables auxiliaires dans tables_des_tables n'est pas completement inutile, il m'arrive parfois de faire des boucles sur l'une ou l'autre d'entre elle pour des raisons de perfo.

boucle_DEFAUT_dist va de toutes facons verifier dans tables_auxiliaires, donc on peut meme faire des boucles sur les tables auxiliaires (sans 'spip_' et en majuscule)
A lire Connexion · GitLab je dirais qu'il y avait un bug dans Spip, mais qu'il n'y est plus.
le probleme, c'est qu'on en a deduit que table_des_tables servait à ca alors que ca n'est pas tout a fait le cas (puisque ca ne concerne que les tables_principales).

ceci dit, on peut facilement permettre la double declaration : il suffit d'inverser l'ordre des tests dans trouver_table(base/abstract_sql) (on traite d'abord les auxiliaires puis les principales).
Mais perso, ca me va bien comme ca.
Je trouve qu'il y a deja pas mal de redondances dans les declarations (avec les "join" en plus maintenant)

Maintenant je pensais pas que ca casserait trop de code, tu en as beaucoup des boucles sur les tables de jointure ?
en fait, si j'ai bien compris, on a :
xxx -> yyy : marche sans eclaration dans table_des_tables
yyy -> 9388 : ne marche pas sans
9388->10048 : marche avec et sans
10048+ : ne marche pas avec.

F&T se voulant compatible 1.9.1.... ca va devenir compliqué à force !

@++