EXECUTE
The EXECUTE statement executes a prepared statement.
When specified, the name should identify a prepared statement.
An error is returned if the name does not identify a prepared statement.
When specified, the encoded_plan
should be the result of a prepared statement.
An error is returned if the encoded_plan
cannot be converted to a prepared statement.
Examples
Prepared statement without a name
The following example shows how to prepare the statement without specifying a name.
$ curl -v http://localhost:8093/query/service \ -d 'statement=PREPARE SELECT text FROM tweets WHERE rating > $r AND created_at > $date'
< HTTP/1.1 200 OK { "requestID": "a339a496-7ed5-4625-9c64-0d7bf584a1bd", "signature": "json", "results": [ { "encoded_plan": "H4sIAAAJbogA/5yRQU/6QBDFvwpZ/gdIIAAA==", "name": "a1355198-2576-4e3d-af04-5acc77d8a681", "operator": { "#operator": "Sequence", "~children": [ // Content redacted ] }, "signature": { "text": "json" }, "text": "PREPARE SELECT text FROM tweets WHERE rating > $r AND created_at > $date" } ], "status": "success", "metrics": { "elapsedTime": "1.970679ms", "executionTime": "1.889351ms", "resultCount": 1, "resultSize": 2261 } }
The following example uses the server-generated name of the prepared statement to execute the statement.
$ curl -v http://localhost:8093/query/service -d 'prepared="a1355198-2576-4e3d-af04-5acc77d8a681"&$r=9.5&$date="1-1-2014"'
< HTTP/1.1 200 OK { "requestID": "1bd9956b-bc8e-478a-bd84-3955fe2db047", "signature": { "text": "json" }, "results": [ { "text": "Couchbase is my favorite database" } ], "status": "success", "metrics": { "elapsedTime": "1.527795ms", "executionTime": "1.443748ms", "resultCount": 0, "resultSize": 0 } } $
Specifying a name for the prepared statement
The following example specifies a name
for the prepared statement.
$ curl -v http://localhost:8093/query/service \ -d 'statement=PREPARE fave_tweets FROM SELECT text FROM tweets WHERE rating >= $r'
< HTTP/1.1 200 OK { "requestID": "a339a496-7ed5-4625-9c64-0d7bf584a1bd", "signature": "json", "results": [ { "encoded_plan": "H4sIAAAJbogA/5yRQU/6QBDFvwpZ/gdIIAAA==", "name": "fave_tweets", "operator": { // and so on ...
The following example uses the name
specified in the example above to run the prepared statement.
$ curl -v http://localhost:8093/query/service -d 'prepared="fave_tweets"&$r=9.5'
< HTTP/1.1 200 OK { "requestID": "1bd9956b-bc8e-478a-bd84-3955fe2db047", "signature": { "text": "json" }, "results": [ { "text": "Couchbase is my favorite database" } ], "status": "success", "metrics": { "elapsedTime": "1.527795ms", "executionTime": "1.443748ms", "resultCount": 0, "resultSize": 0 } } $
Specifying the name and the encoded_plan
The following example specifies a name
for the prepared statement and the response includes an encoded_plan
.
$ curl -v http://localhost:8093/query/service \ -d 'statement=PREPARE fave_tweets FROM SELECT text FROM tweets WHERE rating >= $r'
< HTTP/1.1 200 OK { "requestID": "a339a496-7ed5-4625-9c64-0d7bf584a1bd", "signature": "json", "results": [ { "encoded_plan": "H4sIAAAJbogA/5yRQU/6QBDFvwpZ/gdIIAAA==", "name": "fave_tweets", "operator": { // and so on ...
The following example uses the name
and encoded_plan
from the example above to run the prepared statement.
$ curl -v http://localhost:8093/query/service -H "Content-Type: application/json" -d \ '{ "prepared":"fave_tweets", "encoded_plan":"H4sIAAAJbogA/5yRQU/6QBDFvwpZ/gdIIAAA==", "$r":9.5 }'
< HTTP/1.1 200 OK { "requestID": "1bd9956b-bc8e-478a-bd84-3955fe2db047", "signature": { "text": "json" }, "results": [ { "text": "Couchbase is my favorite database" } ], "status": "success", "metrics": { "elapsedTime": "1.527795ms", "executionTime": "1.443748ms", "resultCount": 0, "resultSize": 0 } } $