The bug (#2787825) seems to be closed for comments, but I think this
bug should not be closed until the documentation gets updated.
typing "man mclient" on the stable branch tells me:
--statement=stmt (-s stmt)
Execute the specified query. The query is run before any queries
from files specified on the command line are run, and before the
interactive session is started (if the --interactive option is given).
This is not in line with Martin's latest comment. Martin, could you
re-open the bug (I don't have the permissions to do so)?
Greetings,
Wouter
2009/7/20 SourceForge.net
Bugs item #2787825, was opened at 2009-05-06 14:21 Message generated for change (Comment added) made by mlkersten You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=482468&aid=2787825&group_id=56967
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Mapi Group: Clients CVS Head
Status: Closed Resolution: Wont Fix Priority: 5 Private: No Submitted By: Wouter Alink (vzzzbx) Assigned to: Nobody/Anonymous (nobody) Summary: mclient: stdin + statement
Initial Comment: It seems that there is a problem with both providing data via stdin and via the -s feature in mclient. (see example below).
A possible solution could perhaps be to forbid this use. Another solution would be to define a behaviour: either read the '-s' first or the stdin first. (perhaps this already is the case, but I couldn't find any documentation about it)
$ cat data.dat 1 2 3 4 5 $ N=4; head -n $N data.dat | mclient -lsql -p50151 -dtest -s "copy $N records into aap from STDIN;" MAPI = monetdb@localhost:50151 QUERY = copy 4 records into aap from STDIN; ERROR = !SQLException:sql:value ';' while parsing ';' from line 0 field 0 not inserted, expecting type int !SQLException:importTable:failed to import table
----------------------------------------------------------------------
Comment By: Martin Kersten (mlkersten) Date: 2009-07-20 21:48
Message: Standard input is ignored in combination with -s. Closing it as at best it can be considered a niche feature request.
----------------------------------------------------------------------
Comment By: Wouter Alink (vzzzbx) Date: 2009-05-07 21:55
Message: as discussed on the monetdb-users list, using either the -s _or_ the stdin works fine (except for other reported/unreported bugs), but the combination fails. (stefan's example works fine).
I can very well imagine that using a combination should not be allowed (and should not even become a feature request), but I feel that the current message is not very helpful.
And, actually (I hadn't thought of this option before), if I would have specified "-i" then the documentation (mclient --help) says it reads from stdin _after_ reading the command line args, but it generates the same error.
After some more tests I discovered that: - when using the command line args + stdin + mentioning '-i', the semi-colon after "copy $N records into aap from STDIN;" should be left out, so the following does work:
$ echo "1 2 3 4 5" | mclient -lsql -dtest -hskadi -p50151 -i -s "COPY 5 RECORDS INTO aap FROM STDIN"
(notice the omission of ';' after the COPY statement)
If I do exactly the same, but leave out the '-i', no error is displayed, but nothing gets inserted either.
If I use only stdin only:
$ echo "COPY 5 RECORDS INTO aap FROM STDIN; 1 2 3 4 5" | mclient -lsql -dtest -hskadi -p50151
then this works (only if the ';' after the COPY statement is present).
I don't know whether there are two different bugs mentioned in this explanation, but I think there definitely is something wrong.
by the way: the create statement for aap is: "CREATE TABLE aap (x int);"
----------------------------------------------------------------------
Comment By: Stefan Manegold (stmane) Date: 2009-05-07 19:30
Message: What about:
{ N=4 ; echo "copy $N records into aap from STDIN;" ; head -n $N data.dat ; } | mclient -lsql -p50151 -dtest
?
----------------------------------------------------------------------
Comment By: Sjoerd Mullender (sjoerd) Date: 2009-05-07 14:26
Message: Where does it say that this is supported? If it doesn't say anywhere, this is a feature request, not a bug.
----------------------------------------------------------------------
You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=482468&aid=2787825&group_id=56967