Fermer

Login

You've been logged-out from spontex.

Authenticate

Your spontex.org account




Or




New here?
Create your account in a single clic


   
  
  
  
You are done! (oui, on vous demande SEULEMENT ça : login / MDP. Le reste, on s'en fout !)
Validate:


Données personnelles ?

Information on this website is public but you have to be logged-in to share. Login, means "give a username and a password". Then, you'll be able to fill some more but nothing is mandatory. If you can read this, it means you clicked on something restricted to logged-in. NOBODY DIED registring here. If you wish not to register, feel free, but don't click on that link again :-)

Titre
Please share those informations... but do not forget to add a link to spontex!
you should never read that.

Sources des LSV avec un S ou non ?


Avatar of mansuetus
mansuetus - July 15, 2011 - 17:36:39

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


Avatar of Ghost
Ghost - July 15, 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 of mansuetus
mansuetus - July 15, 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 of Beri
Beri - July 15, 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 of mansuetus
mansuetus - July 15, 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 of Ghost
Ghost - July 15, 2011 - 19:50:41

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


Avatar of Mako
Mako - July 15, 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 of mansuetus
mansuetus - July 15, 2011 - 19:57:13

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


Avatar of Ghost
Ghost - July 15, 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 of mansuetus
mansuetus - July 15, 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 of Mako
Mako - July 15, 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 of mansuetus
mansuetus - July 15, 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 of Ghost
Ghost - July 15, 2011 - 20:05:43

Je le voyais un peu comme Mako.

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


Avatar of Ghost
Ghost - July 15, 2011 - 20:09:56

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


Avatar of Ghost
Ghost - July 15, 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 of mansuetus
mansuetus - July 15, 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 of Ghost
Ghost - July 15, 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 of mansuetus
mansuetus - July 15, 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 of Ghost
Ghost - July 15, 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 of Ghost
Ghost - July 15, 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.