Accessing metadata

You can access the metadata of a BoundStatement, PreparedStatement or StatementResult by using the getResultDef() method.

Additionally, you can use the getFields().size(), getFieldsName(), and getField() RecordDef methods to obtain the number of fields, field name, and field type respectively.

For example:

// store handle creation omitted.


// Access metadata on PreparedStatement or BoundStatement
PreparedStatement pStmt = store.prepare(
   "DECLARE $minAge integer; $maxAge integer;  " +
   "SELECT id, firstName FROM users WHERE age >= $minAge
   and age < $maxAge ");

RecordDef recodDef = pStmt.getResultDef();
int noOfFields = recodDef.getFields().size();
String fieldName = recodDef.getFieldName(0);  // fieldName is "$minAge";
FieldDef fieldType = recodDef.getField(0);    // feldType is IntegerDef

// Access metadata on StatementResult
StatementResult result = store.executeSync("SELECT * FROM Users WHERE
(age > 18 and age < 30)");

recordDef = result.getResultDef(); 


DDL operations do not have metadata.