JdbcConnectionResource conn = getConnection(env, null).validateConnection();
JdbcConnectionResource conn = getConnection(env).validateConnection();
  public Value mysql_fetch_field(Env env,                                 MysqliResult result,                                 @Optional("-1") int fieldOffset)    throws Throwable  {    if (result == null)      return BooleanValue.FALSE;    if (fieldOffset == -1)      fieldOffset = result.field_tell(env);    Value fieldTable = result.fetch_field_table(fieldOffset);    Value fieldName = result.fetch_field_name(fieldOffset);    Value fieldType = result.fetch_field_type(env, fieldOffset);    Value fieldLength = result.fetch_field_length(fieldOffset);    Value fieldCatalog = result.fetch_field_catalog(fieldOffset);    if ((fieldTable == BooleanValue.FALSE)        || (fieldName == BooleanValue.FALSE)        || (fieldType == BooleanValue.FALSE)        || (fieldLength == BooleanValue.FALSE)        || (fieldCatalog == BooleanValue.FALSE)) {      return BooleanValue.FALSE;    }        result.field_seek(env, fieldOffset + 1);    JdbcConnectionResource conn = getConnection(env, null).validateConnection();    JdbcTableMetaData tableMd = conn.getTableMetaData(fieldCatalog.toString(),					       null,					       fieldTable.toString());    if (tableMd == null)      return BooleanValue.FALSE;    JdbcColumnMetaData columnMd = tableMd.getColumn(fieldName.toString());          if (columnMd == null)      return BooleanValue.FALSE;    ObjectValue fieldResult = env.createObject();    fieldResult.putField("name", columnMd.getName());    fieldResult.putField("table", tableMd.getName());    fieldResult.putField("def", "");    fieldResult.putField("max_length", fieldLength.toInt());    fieldResult.putField("not_null", columnMd.isNotNull() ? 1 : 0);        fieldResult.putField("primary_key", columnMd.isPrimaryKey() ? 1 : 0);    fieldResult.putField("multiple_key", columnMd.isIndex() && ! columnMd.isPrimaryKey() ? 1 : 0);    fieldResult.putField("unique_key", columnMd.isUnique() ? 1 : 0);        fieldResult.putField("numeric", columnMd.isNumeric() ? 1 : 0);    fieldResult.putField("blob", columnMd.isBlob() ? 1 : 0);    fieldResult.putField("type", fieldType.toString());    fieldResult.putField("unsigned", columnMd.isUnsigned() ? 1 : 0);    fieldResult.putField("zerofill", columnMd.isZeroFill() ? 1 : 0);        return fieldResult;  }