Module: PgCanary

Defined in:
lib/pg_canary.rb,
lib/pg_canary/version.rb,
lib/pg_canary/detector.rb,
lib/pg_canary/middleware.rb,
lib/pg_canary/rules/base.rb,
lib/pg_canary/subscriber.rb,
lib/pg_canary/configuration.rb,
lib/pg_canary/rules/detection.rb,
lib/pg_canary/pg_query_support.rb,
lib/pg_canary/rules/query_context.rb,
lib/pg_canary/schema_introspection.rb,
lib/pg_canary/rules/index_predicates.rb,
lib/pg_canary/rules/definitions/deep_offset.rb,
lib/pg_canary/rules/definitions/huge_in_list.rb,
lib/pg_canary/rules/definitions/implicit_cast.rb,
lib/pg_canary/rules/definitions/cartesian_join.rb,
lib/pg_canary/rules/definitions/unindexed_join.rb,
lib/pg_canary/rules/definitions/not_in_subquery.rb,
lib/pg_canary/rules/definitions/order_by_random.rb,
lib/pg_canary/rules/definitions/unindexed_where.rb,
lib/pg_canary/rules/definitions/query_complexity.rb,
lib/pg_canary/rules/definitions/or_across_columns.rb,
lib/pg_canary/rules/definitions/distinct_with_join.rb,
lib/pg_canary/rules/definitions/function_on_column.rb,
lib/pg_canary/rules/definitions/regex_without_trgm.rb,
lib/pg_canary/rules/definitions/leading_wildcard_like.rb,
lib/pg_canary/rules/definitions/array_search_without_gin.rb,
lib/pg_canary/rules/definitions/count_star_without_where.rb,
lib/pg_canary/rules/definitions/jsonb_search_without_gin.rb,
lib/pg_canary/rules/definitions/union_instead_of_union_all.rb,
lib/pg_canary/rules/definitions/correlated_subquery_in_select.rb,
lib/pg_canary/rules/definitions/unindexed_order_by_with_limit.rb,
lib/pg_canary/rules/definitions/select_star_with_heavy_columns.rb

Defined Under Namespace

Modules: PgQuerySupport, Rules, SchemaIntrospection Classes: Configuration, Detector, Error, Middleware, Railtie, RuleConfig, RulesConfig, Subscriber

Constant Summary collapse

VERSION =
"0.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject (readonly)

Returns the value of attribute config.



25
26
27
# File 'lib/pg_canary.rb', line 25

def config
  @config
end

Class Method Details

.configure {|config| ... } ⇒ Object

Yields:



27
28
29
# File 'lib/pg_canary.rb', line 27

def configure
  yield config
end

.internal_error(error) ⇒ Object

Reports an internal pg_canary failure without ever breaking the host app.



32
33
34
# File 'lib/pg_canary.rb', line 32

def internal_error(error)
  warn_once("[PgCanary] internal error (detection skipped): #{error.class}: #{error.message}")
end