{
  "iface": "futoin.db.l2",
  "version": "1.0",
  "ftn3rev": "1.7",
  "inherit": "futoin.db.l1:1.0",
  "types": {
    "IntOrBool": [
      "integer",
      "boolean"
    ],
    "XferQuery": {
      "type": "map",
      "fields": {
        "q": "Query",
        "affected": {
          "type": "IntOrBool",
          "optional": true,
          "desc": "Require changed row count: specific or > 0, if true"
        },
        "selected": {
          "type": "IntOrBool",
          "optional": true,
          "desc": "Require selected row count: specific or > 0, if true"
        },
        "result": {
          "type": "boolean",
          "optional": true,
          "desc": "Return result of the statement"
        },
        "template": {
          "type": "boolean",
          "optional": true,
          "desc": "Process value back references"
        }
      }
    },
    "XferQueryList": {
      "type": "array",
      "elemtype": "XferQuery",
      "minlen": 1,
      "maxlen": 100
    },
    "XferResult": {
      "type": "map",
      "fields": {
        "seq": "integer",
        "rows": "Rows",
        "fields": "Fields",
        "affected": "integer"
      }
    },
    "XferResultList": {
      "type": "array",
      "elemtype": "XferResult",
      "minlen": 0,
      "maxlen": 100
    },
    "IsolationLevel": {
      "type": "enum",
      "items": [
        "RU",
        "RC",
        "RR",
        "SRL"
      ],
      "desc": "Refers to standard ISO isolation levels"
    }
  },
  "funcs": {
    "xfer": {
      "params": {
        "ql": "XferQueryList",
        "isol": "IsolationLevel"
      },
      "result": "XferResultList",
      "throws": [
        "InvalidQuery",
        "Duplicate",
        "OtherExecError",
        "LimitTooHigh",
        "DeadLock",
        "XferCondition",
        "XferBackRef"
      ]
    }
  }
}