Fermer

Connectez-vous

Vous devez être connecté pour faire ça.

Identifiez-vous

Votre compte spontex.org




Ou




Nouveau ?
Créez votre compte en un seul clic.


   
  
  
  
C'est tout ! (oui, on vous demande SEULEMENT ça : login / MDP. Le reste, on s'en fout !)
Valider :


Données personnelles ?

Les informations sur ce site sont publiques mais la participation est réservée aux personnes enregistrées. S'enregistrer, ça veut dire "donner un login + un mot de passe". Après, vous pourrez renseigner plus d'informations mais RIEN d'autre n'est obligatoire. Si vous êtes tombé ici, c'est que vous avez voulu faire quelque chose réservé aux personnes enregistrées. De source fiable, j'ai appris que PERSONNE n'était JAMAIS mort après avoir rempli ce formulaire. Si vous ne voulez toujours pas vous enregistrer (libre à vous), vous pouvez continuer votre navigation, sans cliquer sur les liens qui mènent à cette page :-) Merci d'avoir lu jusqu'ici.

Titre
N'hésitez pas à partager nos informations... mais n'oubliez pas de nous citer !
you should never read that.

Sources des LSV avec un S ou non ?


Avatar de mansuetus
mansuetus - 15 juillet 2011 - 17:36:39

Bon, j'arrive pas à me connecter, désolé : ça attendra ce soir :'(


Avatar de Ghost
Ghost - 15 juillet 2011 - 17:39:08

Mans en Java je fais ça :


String details; SourcesList sources;
public Details(String details_avec_source) {
		String[] tab = details_source.split("<ins>Source");
		this.details=tab[0];
		if(tab.length > 1) {
			if(tab[1].length() > 10) // plus de caractères dans la source
				this.sources= new SourcesList(tab[1].replaceAll("</ins>", ""));
			else // Ne dois jamais y entrer, sinon corriger le LSV
				this.sources = new SourcesList(0);
		} // Pas de sources dans le LSV
		else this.sources = new SourcesList(0);
	}

Tu veux passer par chez moi ?


Avatar de mansuetus
mansuetus - 15 juillet 2011 - 18:30:09

Non, ça serait trop risqué… mais c'est gentil de proposer.

Tu peux compter sur une donnée “sources” dès ce soir…
... pour l'alimentation, je dis pas ^^


Avatar de Beri
Beri - 15 juillet 2011 - 19:36:32

(si on ne veut pas risquer de planter au premier “source” au milieu d’un LSV, i.e : la Seine prend sa [source]...

Pourquoi ne pas chercher Sources avec les + devant et derrière vu qu'on fout tout bien propre en textile dans les LSV ?


Avatar de mansuetus
mansuetus - 15 juillet 2011 - 19:50:19

Si quelqu'un sait faire une requête postgreSQL :


UPDATE lsv_lsvtrans SET
source = "(partie après +Source(s):+),
details = "(partie avant +Source(s):+)
WHERE ...

Je suis preneur.

MAIS
Si la requête plante et que tous les LSV sont kapput après la requête, il sera cloué sur la bite de Junk.


Avatar de Ghost
Ghost - 15 juillet 2011 - 19:50:41

Beri c'est ce que je fais pour ma part dans le code Java avec <ins>Source


Avatar de Mako
Mako - 15 juillet 2011 - 19:58:00

MAIS
Si la requête plante et que tous les LSV sont kapput après la requête, il sera cloué sur la bite de Junk.

Euh… Tu voudrais pas plutôt la tenter sur une base de test avant de le faire en prod ?


Avatar de mansuetus
mansuetus - 15 juillet 2011 - 19:57:13

Si… mais c'est pas ça le soucis : en prod, il y a toujours une merde non prévue :-)


Avatar de Ghost
Ghost - 15 juillet 2011 - 19:57:47

Si la requête plante et que tous les LSV sont kapput après la requête, il sera cloué sur la bite de Junk.

Tu t'étonneras pas d'un manque de volontaires.
Et +1 avec Mako.


Avatar de mansuetus
mansuetus - 15 juillet 2011 - 19:59:22

On va le dire autrement :

1. vous faites la requête (pour moi, c'est mort : ça existe pas les je n'ai jamais vu de regexp en MySQL).
2. je m'occupe de la recette et je vous prouverai que ça sert à rien et qu'il valait mieux le faire à la main direct.


Avatar de Mako
Mako - 15 juillet 2011 - 20:02:18

Tu ne peux pas le faire plus subtilement ? Du genre :

- Récupérer les détails ;
– Séparer détails (old) et sources ;
– insérer fichier des sources dans la table source, et gros update pour la table des détails ;

?


Avatar de mansuetus
mansuetus - 15 juillet 2011 - 20:03:51

ça suppose d'extraire tout, de travailler le dump puis de ré-insérer… that's a bit risky ^^
(encodage des caractères…)


Avatar de Ghost
Ghost - 15 juillet 2011 - 20:05:43

Je le voyais un peu comme Mako.

Sinon: http://dev.mysql.com/doc/refman/5.1/en/regexp.html


Avatar de Ghost
Ghost - 15 juillet 2011 - 20:09:56

J'ai la requête, par contre c'est du mySql :/


Avatar de Ghost
Ghost - 15 juillet 2011 - 20:11:10

J’ai la requête, par contre c’est du mySql :/

Le mans, il parle un coup de Postgre, un coup de My, du coup je sais plus quel est le bon!


Avatar de mansuetus
mansuetus - 15 juillet 2011 - 20:12:15

1. MySQL is not pgsql (mais ça change rien)
2. dans ton exemple :

Warning
The REGEXP and RLIKE operators work in byte-wise fashion, so they are not multi-byte safe and may produce unexpected results with multi-byte character sets. In addition, these operators compare characters by their byte values and accented characters may not compare as equal even if a given collation treats them as equal.

3. dans ton exemple toujours, on dirait que ça ne marche que dans les “WHERE”... ce qui me permettra de facilement identifier les LSV mais pas de manipuler ses contenus…

OUI, je peux aussi pondre un script à deux balles en python qui le fait…
... NON, j'ai pas envie (parce que l'erreur coûte cher si elle passe inaperçu)


Avatar de Ghost
Ghost - 15 juillet 2011 - 20:14:57

1. MySQL is not pgsql (mais ça change rien)

Ehoh, c'est toi qui me dit “Jamais vu de regexp en mySQL” :D

Pour le reste, j'ai envie de dire que si c'est pas aussi trivial qu'un coup de sed ou awk, c'est effectivement risqué et que je me fouetterais toute la soirée avec des fils barbelés enduits de Tabasco pour avoir suggéré une automatisation qui n'a pas pu avoir lieu.


Avatar de mansuetus
mansuetus - 15 juillet 2011 - 20:18:56

Le truc, c'est que si une requête simple faisait ça, on pourrait le faire !

Vous avez remarqué le bug des commentaires qui disparaissaient ? (complètement vides)
ce ticket est mignon aussi

Si on fait une requête et que 20 LSV sont croqués tout crus… on le verra dans 2 mois et on aura juste perdu 20 LSV
... connement.

Après, on a le droit de proposer des trucs ! Mais on a aussi le droit de vraiment de flageller aux barbelés avec du tabsco sel de guérande.


Avatar de Ghost
Ghost - 15 juillet 2011 - 20:22:57

Vous avez remarqué le bug des commentaires qui disparaissaient ? (complètement vides)

Non, mais je n'écris pas de commentaire vide. Vides de sens parfois.

Mais je me suis bien vautré sur le rapport bénéfices/risques sur ce coup là.


Avatar de Ghost
Ghost - 15 juillet 2011 - 20:53:41

CREATE FUNCTION stringSplit(x text, delim text, pos int) returns text
return replace(substring(substring_index(x, delim, pos), length(substring_index(x, delim, pos - 1)) + 1), delim, '');


UPDATE lsv_lsvtrans 
SET sources = 
  (
    SELECT stringSplit(lsv_lsvtrans.details,  '+Source :+', 2) AS sources_find
  ), details = 
  (
    SELECT stringSplit(lsv_lsvtrans.details,  '+Source :+', 1) AS details_find
  )
WHERE 
(
  SELECT LENGTH( stringSplit(lsv_lsvtrans.details,  '+Source :+', 2)) 
)>0

Faire deux fois, avec Source : et Sources : et ensuite vérifier que les sources sont complétées.

Enjoy ;)

Testé en local, si pas de sources, ne fait rien, le mot clef n'a pas été trouvé, il ne fait rien.