Details
Description
1. prepare an upsert or delete
request: { "request": "prepare", "connectionId": "c28224cd-a688-4117-af44-0d1510918bd8", "sql": "upsert into test.integer_table values ('test3', ?)", "maxRowCount": -1 }
Response:
{ "response": "prepare", "statement": { "connectionId": "36acc5c4-0136-874a-2fcf-a3ec747d7FD4", "id": 1532322378, "signature": { "columns": [ ], "sql": "upsert into test.integer_table values ('test3', ?)", "parameters": [ { "signed": false, "precision": 0, "scale": 0, "parameterType": 4, "typeName": "INTEGER", "className": "java.lang.Integer", "name": "?1" } ], "cursorFactory": { "style": "LIST", "clazz": null, "fieldNames": null } } } }
2. execute by calling 'fetch' to Phoenix
request: { "request": "fetch", "connectionId": "36acc5c4-0136-874a-2fcf-a3ec747d7FD4", "statementId": 1532322378, "parameterValues": [ { "type": "INTEGER", "value": 1 } ], "offset": 0, "fetchMaxRowCount": 100 }
Result:
{ "response": "fetch", "frame": { "offset": 0, "done": true, "rows": [ ] } }
using prepareAndExecute, we get back an update row-count, but prepareAndExecute cannot be used for parameterized statements