{"record":{"id":"b0e93426f9d168ef","repo":"ankane/pgsync","slug":"missing-variables-missing-vars-uniq-join","errorCode":null,"errorMessage":"Missing variables: #{missing_vars.uniq.join(\", \")}","messagePattern":"Missing variables: #(.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"lib/pgsync/task_resolver.rb","lineNumber":227,"sourceCode":"\n      return unless sql\n\n      # vars must match \\w\n      missing_vars = sql.scan(/{\\w+}/).map { |v| v[1..-2] }\n\n      vars = {}\n      if param\n        vars[\"id\"] = cast(param)\n        vars[\"1\"] = cast(param)\n      end\n\n      sql = sql.dup\n      vars.each do |k, v|\n        # only sub if in var list\n        sql.gsub!(\"{#{k}}\", cast(v)) if missing_vars.delete(k)\n      end\n\n      raise Error, \"Missing variables: #{missing_vars.uniq.join(\", \")}\" if missing_vars.any?\n\n      sql\n    end\n\n    # TODO quote vars in next major version\n    def cast(value)\n      value.to_s.gsub(/\\A\\\"|\\\"\\z/, '')\n    end\n  end\nend\n","sourceCodeStart":209,"sourceCodeEnd":238,"githubUrl":"https://github.com/ankane/pgsync/blob/57bdddf5db506d329b51cb3376379dc3a2559010/lib/pgsync/task_resolver.rb#L209-L238","documentation":"Error \"Missing variables: #{missing_vars.uniq.join(\", \")}\" thrown in ankane/pgsync.","triggerScenarios":"Thrown at lib/pgsync/task_resolver.rb:227 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"57bdddf5db506d329b51cb3376379dc3a2559010","analyzedAt":"2026-08-23T11:18:48.887Z","schemaVersion":2},"datasetVersion":"2026-08-23T16:17:53.355Z"}