s4
changeset 595:d4fe749996fd
csvline enabled in heading of enquete mode blog
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Sat, 07 Dec 2019 15:36:47 +0900 |
parents | 3dbb63414f0b |
children | 7ece8cc62a7a |
files | s4-blog.sh |
diffstat | 1 files changed, 24 insertions(+), 7 deletions(-) [+] |
line diff
1.1 --- a/s4-blog.sh Thu Dec 05 12:36:28 2019 +0900 1.2 +++ b/s4-blog.sh Sat Dec 07 15:36:47 2019 +0900 1.3 @@ -701,15 +701,36 @@ 1.4 # we take the line as column list. 1.5 # Otherwise we produce two column CSV as below: 1.6 # USER,ANSWER 1.7 + query "DROP TABLE IF EXISTS tmp_q;" 1.8 if [ -n "$csvline" ]; then 1.9 - : 1.10 + query <<-EOF 1.11 + CREATE TEMPORARY TABLE tmp_q("user", $csvline); 1.12 + EOF 1.13 + if [ $? != 0 ]; then 1.14 + contenttype; echo 1.15 + cat <<-EOF | html p; exit 1.16 + 掲示板のヘッダにあるCSV定義が不正でCSV出力できません。 1.17 + $csvline 1.18 + 空白なしの項目名を半角カンマ区切りで1行で書いてください。 1.19 + EOF 1.20 + fi 1.21 else 1.22 query <<-EOF 1.23 - DROP TABLE IF EXISTS tmp_q; 1.24 CREATE TEMPORARY TABLE tmp_q(user text PRIMARY KEY, answer); 1.25 EOF 1.26 fi 1.27 esac 1.28 + if $copy2csv; then 1.29 + mkdir $bd/$rid 1.30 + outcsv=$bd/$rid/migrate-$rid.csv 1.31 + sq "$db" <<-EOF | tr '|' ',' > $outcsv 1.32 + SELECT author as "USER", 1.33 + replace(val, x'0a', ',') as "${csvline:-ANSWER}" 1.34 + FROM article a JOIN article_s s ON a.id=s.id 1.35 + AND blogid=(SELECT id FROM blog WHERE rowid=$rid) 1.36 + AND s.key='text'; 1.37 + EOF 1.38 + fi 1.39 query <<-EOF | 1.40 SELECT a.rowid, a.id artid, a.author, s.val 1.41 FROM article a JOIN article_s s ON a.id=s.id 1.42 @@ -721,11 +742,6 @@ 1.43 mkdir -p $dir 1.44 echo "$author" > $dir/Author 1.45 echo "$text" > $dir/Text 1.46 - if $copy2csv; then 1.47 - query "REPLACE INTO tmp_q SELECT author, val 1.48 - FROM article a NATURAL JOIN article_s s 1.49 - WHERE blogid='$blogid' AND key='text';" 1.50 - fi 1.51 i=0 1.52 query "SELECT m.rowid, m.val FROM article_m m \ 1.53 WHERE id='$artid' AND m.key IN ('image', 'document', 'binary');" \ 1.54 @@ -760,6 +776,7 @@ 1.55 query <<-EOF > $bd/$rid/all-text-$rid.csv 1.56 .mode csv 1.57 .head 1 1.58 + .import $outcsv tmp_q 1.59 SELECT * FROM tmp_q; 1.60 .mode list 1.61 .head 0