code: @Override
    public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) {
      Properties copy = new Properties(info);
      Properties parse = parseURL(url, copy);
      if (parse != null) {
        copy = parse;
      }
  
      PGProperty[] knownProperties = PGProperty.values();
      DriverPropertyInfo[] props = new DriverPropertyInfo[knownProperties.length];
      for (int i = 0; i < props.length; ++i) {
        props[i] = knownProperties[i].toDriverPropertyInfo(copy);
      }
  
      return props;
    }
docs: <p>The getPropertyInfo method is intended to allow a generic GUI tool to discover what properties
  it should prompt a human for in order to get enough information to connect to a database.</p>
  
  <p>Note that depending on the values the human has supplied so far, additional values may become
  necessary, so it may be necessary to iterate through several calls to getPropertyInfo</p>
  
  @param url the Url of the database to connect to
  @param info a proposed list of tag/value pairs that will be sent on connect open.
  @return An array of DriverPropertyInfo objects describing possible properties. This array may
  be an empty array if no properties are required
  @see java.sql.Driver#getPropertyInfo