docs: def _run_psql(cmd, runas=None, password=None, host=None, port=None, user=None):
      '''
      Helper function to call psql, because the password requirement
      makes this too much code to be repeated in each function below
      '''
      kwargs = {
          'reset_system_locale': False,
          'clean_env': True,
      }
      if runas is None:
          if not host:
              host = __salt__['config.option']('postgres.host')
          if not host or host.startswith('/'):
              if 'FreeBSD' in __grains__['os_family']:
                  runas = 'pgsql'
              elif 'OpenBSD' in __grains__['os_family']:
                  runas = '_postgresql'
              else:
                  runas = 'postgres'
  
      if user is None:
          user = runas
  
      if runas:
          kwargs['runas'] = runas
  
      if password is None:
          password = __salt__['config.option']('postgres.pass')
      if password is not None:
          pgpassfile = salt.utils.files.mkstemp(text=True)
          with salt.utils.files.fopen(pgpassfile, 'w') as fp_:
              fp_.write(salt.utils.stringutils.to_str('{0}:{1}:*:{2}:{3}'.format(
                  'localhost' if not host or host.startswith('/') else host,
                  port if port else '*',
                  user if user else '*',
                  password,
              )))
              __salt__['file.chown'](pgpassfile, runas, '')
              kwargs['env'] = {'PGPASSFILE': pgpassfile}
  
      ret = __salt__['cmd.run_all'](cmd, python_shell=False, **kwargs)
  
      if ret.get('retcode', 0) != 0:
          log.error('Error connecting to Postgresql server')
      if password is not None and not __salt__['file.remove'](pgpassfile):
          log.warning('Remove PGPASSFILE failed')
  
      return ret