ankane/pgsync · error · Error

Missing variables: #{missing_vars.uniq.join(", ")}

Error message

Missing variables: #{missing_vars.uniq.join(", ")}

What it means

Error "Missing variables: #{missing_vars.uniq.join(", ")}" thrown in ankane/pgsync.

Source

Thrown at lib/pgsync/task_resolver.rb:227

      return unless sql

      # vars must match \w
      missing_vars = sql.scan(/{\w+}/).map { |v| v[1..-2] }

      vars = {}
      if param
        vars["id"] = cast(param)
        vars["1"] = cast(param)
      end

      sql = sql.dup
      vars.each do |k, v|
        # only sub if in var list
        sql.gsub!("{#{k}}", cast(v)) if missing_vars.delete(k)
      end

      raise Error, "Missing variables: #{missing_vars.uniq.join(", ")}" if missing_vars.any?

      sql
    end

    # TODO quote vars in next major version
    def cast(value)
      value.to_s.gsub(/\A\"|\"\z/, '')
    end
  end
end

View on GitHub (pinned to 57bdddf5db)

When it happens

Trigger: Thrown at lib/pgsync/task_resolver.rb:227 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ankane/pgsync@57bdddf5db (2026-08-23). Data as JSON: /api/errors/b0e93426f9d168ef. Report an issue: GitHub.