diff --git a/CHANGES.txt b/CHANGES.txt index dc912ae..3abedc9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +## Version 4.4.1 du 15/04/2016-12:24 + +a45fd99 awkrun: ajouter l'argument suffix à qsql(), cqsql(), cval() + ## Version 4.4.0 du 15/04/2016-12:04 73391a9 awkrun: ajout d'un champ field à cqsql diff --git a/VERSION.txt b/VERSION.txt index fdc6698..cca25a9 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -4.4.0 +4.4.1 diff --git a/lib/ulib/.ulibver b/lib/ulib/.ulibver index ff21241..a56b5d1 100644 --- a/lib/ulib/.ulibver +++ b/lib/ulib/.ulibver @@ -1 +1 @@ -012003000 +012003001 diff --git a/lib/ulib/awk b/lib/ulib/awk index 8684a64..8235306 100644 --- a/lib/ulib/awk +++ b/lib/ulib/awk @@ -94,17 +94,23 @@ qegrep(s) sont mis en échappement: \\ . [ ^ \$ ? + * ( ) | { L'alias quote_egrep(s) existe pour compatibilité -qsql(s) +qsql(s, [suffix]) quoter une valeur pour un script sql. la valeur est entourée de quotes, e.g: qsql(\"hello'there\") --> 'hello''there' L'alias quote_sql(s) existe pour compatibilité + Si suffix est spécifié, le rajouter après la valeur précédé d'un espace, e.g: + qsql(\"value\", \"field\") + --> 'value' field -cqsql(s) +cqsql(s, [suffix]) comme qsql() mais ajouter une virgule avant la valeur quotée. ceci permet de construire facilement une requête SQL, e.g: print \"insert into t(a, b, c) values (\" qsql(a) cqsql(b) cqsql(c) \");\" - --> insert into t(a, b, c) values ('a', 'b', 'c'); + --> insert into t(a, b, c) values ('a','b','c'); + Si suffix est spécifié, le rajouter après la valeur précédé d'un espace, e.g: + cqsql(\"value\", \"field\") + --> ,'value' field unquote_mysqlcsv(s) Analyser une valeur exportée de MySQL avec mysqlcsv. Les transformations @@ -119,10 +125,13 @@ sval(s) sval(\"\") --> \"\" sval(\"any\") --> \" any\" -cval(s) +cval(s, [suffix]) retourner la valeur s précédée d'une virgule si elle est non vide, e.g: sval(\"\") --> \"\" sval(\"any\") --> \",any\" + Si suffix est spécifié, le rajouter après la valeur précédé d'un espace, e.g: + cval(\"\", \"field\") --> \"\" + cval(\"value\", \"field\") --> \",value field\" mkindices(values, indices) créer le tableau indices qui contient les indices du tableau values, de 1 à N, diff --git a/lib/ulib/base b/lib/ulib/base index ce13062..f5748f7 100644 --- a/lib/ulib/base +++ b/lib/ulib/base @@ -1914,12 +1914,12 @@ function qegrep(s) { gsub(/[[\\.^$*+?()|{]/, "\\\\&", s) return s } -function qsql(s) {'" +function qsql(s, suffix) {'" gsub(/'/, \"''\", s) - return \"'\" s \"'\" + return \"'\" s \"'\" (suffix != \"\"? \" \" suffix: \"\") "'} -function cqsql(s, field) { - return "," qsql(s) (field != ""? " " field: "") +function cqsql(s, suffix) { + return "," qsql(s, suffix) } function unquote_mysqlcsv(s) { gsub(/\\n/, "\n", s) @@ -1932,9 +1932,9 @@ function sval(s) { if (s == "") return s else return " " s } -function cval(s) { +function cval(s, suffix) { if (s == "") return s - else return "," s + else return "," s (suffix != ""? " " suffix: "") } # aliases pour compatibilité function quote_html(s) { return qhtml(s) }