diff options
Diffstat (limited to 'elymas/lib/ffi/pq.ey')
| -rw-r--r-- | elymas/lib/ffi/pq.ey | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/elymas/lib/ffi/pq.ey b/elymas/lib/ffi/pq.ey index 0cf1d03..16997ab 100644 --- a/elymas/lib/ffi/pq.ey +++ b/elymas/lib/ffi/pq.ey @@ -171,6 +171,37 @@ > } ; -01 deffst }' each > } ; /connect deffd + + { + connect ==con + con .status { < + con .errorMessage ==msg + > ???io.ffi.pq } rep + + { # ==nsQuery + "" ==spaceQuery + { _ "([^ ]*) (.*)" regex } { -102 -- + spaceQuery -01 cat " " cat =spaceQuery + } loop spaceQuery -01 cat =spaceQuery + spaceQuery ==parameterCountTmp + 0 ==maxParameter + { parameterCountTmp "^(.*)\\$(\\d+)(.*)$" regex } { ==a ==p ==b + a b cat =parameterCountTmp + p txt .consume .u maxParameter max =maxParameter + } loop + + maxParameter { + maxParameter spaceQuery con .execParams + } { + spaceQuery con .exec + } ? * ":-" via + [ + { :-status |COMMAND_OK eq }' { :-clear }' + { :-status |TUPLES_OK eq }' { :-all :-clear }' + { 1 }' { < :-error ==msg > ???io.ffi.pq } + ] conds + } + } /functional deffd > /pq ffi .defv # vim: syn=elymas |
