{"record":{"id":"442e1fae28ce9633","repo":"ankane/pgsync","slug":"unknown-rule-rule-inspect-for-column-column","errorCode":null,"errorMessage":"Unknown rule #{rule.inspect} for column #{column}","messagePattern":"Unknown rule #(.+?) for column #(.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"lib/pgsync/task.rb","lineNumber":244,"sourceCode":"        end\n      end\n    end\n\n    # TODO better performance\n    def rule_match?(table, column, rule)\n      regex = Regexp.new('\\A' + Regexp.escape(rule).gsub('\\*', '[^\\.]*') + '\\z')\n      regex.match(column) || regex.match(\"#{table.name}.#{column}\") || regex.match(\"#{table.schema}.#{table.name}.#{column}\")\n    end\n\n    # TODO wildcard rules\n    def apply_strategy(rule, table, column, primary_key)\n      if rule.is_a?(Hash)\n        if rule.key?(\"value\")\n          escape(rule[\"value\"])\n        elsif rule.key?(\"statement\")\n          rule[\"statement\"]\n        else\n          raise Error, \"Unknown rule #{rule.inspect} for column #{column}\"\n        end\n      else\n        case rule\n        when \"untouched\"\n          quote_ident(column)\n        when \"unique_email\"\n          \"'email' || #{quoted_primary_key(table, primary_key, rule)}::text || '@example.org'\"\n        when \"unique_phone\"\n          \"(#{quoted_primary_key(table, primary_key, rule)}::bigint + 1000000000)::text\"\n        when \"unique_secret\"\n          \"'secret' || #{quoted_primary_key(table, primary_key, rule)}::text\"\n        when \"random_int\", \"random_number\"\n          \"(RANDOM() * 100)::int\"\n        when \"random_date\"\n          \"date '1970-01-01' + (RANDOM() * 10000)::int\"\n        when \"random_time\"\n          \"NOW() - (RANDOM() * 100000000)::int * INTERVAL '1 second'\"\n        when \"random_ip\"","sourceCodeStart":226,"sourceCodeEnd":262,"githubUrl":"https://github.com/ankane/pgsync/blob/57bdddf5db506d329b51cb3376379dc3a2559010/lib/pgsync/task.rb#L226-L262","documentation":"Error \"Unknown rule #{rule.inspect} for column #{column}\" thrown in ankane/pgsync.","triggerScenarios":"Thrown at lib/pgsync/task.rb:244 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"}