newrelic_rpm 3.14.3.313 → 3.15.0.314

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +20 -6
  3. data/CHANGELOG +31 -0
  4. data/README.md +1 -1
  5. data/lib/new_relic/agent/configuration/default_source.rb +31 -29
  6. data/lib/new_relic/agent/database/obfuscation_helpers.rb +1 -1
  7. data/lib/new_relic/agent/instrumentation/active_job.rb +7 -1
  8. data/lib/new_relic/agent/instrumentation/active_record_4.rb +1 -1
  9. data/lib/new_relic/agent/instrumentation/data_mapper.rb +1 -1
  10. data/lib/new_relic/agent/instrumentation/grape.rb +1 -1
  11. data/lib/new_relic/agent/instrumentation/memcache.rb +1 -1
  12. data/lib/new_relic/agent/instrumentation/rails5/action_controller.rb +29 -0
  13. data/lib/new_relic/agent/instrumentation/rails5/action_view.rb +25 -0
  14. data/lib/new_relic/agent/instrumentation/rails_middleware.rb +2 -2
  15. data/lib/new_relic/agent/supported_versions.rb +1 -0
  16. data/lib/new_relic/agent/system_info.rb +1 -1
  17. data/lib/new_relic/control/frameworks/rails5.rb +14 -0
  18. data/lib/new_relic/version.rb +2 -2
  19. data/lib/tasks/config.rake +15 -23
  20. data/lib/tasks/tests.rake +1 -1
  21. data/newrelic.yml +1 -1
  22. data/newrelic_rpm.gemspec +2 -2
  23. data/test/environments/lib/environments/runner.rb +10 -6
  24. data/test/environments/rails40/Gemfile +1 -1
  25. data/test/environments/rails40/config/database.yml +1 -1
  26. data/test/environments/rails41/Gemfile +1 -1
  27. data/test/environments/rails41/config/database.yml +1 -1
  28. data/test/environments/rails42/Gemfile +1 -1
  29. data/test/environments/rails42/config/database.yml +1 -1
  30. data/test/environments/rails50/Gemfile +36 -0
  31. data/test/environments/rails50/Rakefile +11 -0
  32. data/test/environments/rails50/config/application.rb +18 -0
  33. data/test/environments/rails50/config/boot.rb +10 -0
  34. data/test/environments/rails50/config/database.yml +26 -0
  35. data/test/environments/rails50/config/environment.rb +6 -0
  36. data/test/environments/rails50/db/schema.rb +5 -0
  37. data/test/fixtures/cross_agent_tests/sql_obfuscation/sql_obfuscation.json +55 -27
  38. data/test/multiverse/suites/active_record/Envfile +14 -2
  39. data/test/multiverse/suites/active_record/active_record_test.rb +1 -1
  40. data/test/multiverse/suites/active_record/config/database.yml +8 -5
  41. data/test/multiverse/suites/datamapper/datamapper_test.rb +2 -1
  42. data/test/multiverse/suites/grape/Envfile +1 -1
  43. data/test/multiverse/suites/rails/Envfile +8 -0
  44. data/test/multiverse/suites/rails/error_tracing_test.rb +13 -0
  45. data/test/new_relic/agent/system_info_test.rb +6 -0
  46. data/test/new_relic/agent/transaction_test.rb +14 -14
  47. data/test/new_relic/agent/utilization_data_test.rb +9 -0
  48. metadata +14 -4
@@ -86,6 +86,7 @@ module NewRelic
86
86
  {
87
87
  :type => :web,
88
88
  :supported => ["~>2.1.0", "~>2.2.0", "~>2.3.0", "~3.0.0", "~>3.1.0", "~>3.2.0", "~>4.0.0", "~>4.1.0", "~>4.2.0"],
89
+ :experimental=> ["5.0.0beta2"],
89
90
  :deprecated => ["~>2.0.0"],
90
91
  :url => "https://rubygems.org/gems/rails",
91
92
  :feed => "https://rubygems.org/gems/rails/versions.atom",
@@ -244,7 +244,7 @@ module NewRelic
244
244
  end
245
245
 
246
246
  def self.parse_linux_meminfo_in_mib(meminfo)
247
- if mem_total = meminfo[/MemTotal:\s*(\d*)\skB/,1]
247
+ if meminfo && mem_total = meminfo[/MemTotal:\s*(\d*)\skB/,1]
248
248
  (mem_total.to_i / 1024).to_i
249
249
  else
250
250
  ::NewRelic::Agent.logger.debug("Failed to parse MemTotal from /proc/meminfo: #{meminfo}")
@@ -0,0 +1,14 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
5
+ require 'new_relic/control/frameworks/rails4'
6
+ require 'new_relic/rack/error_collector'
7
+ module NewRelic
8
+ class Control
9
+ module Frameworks
10
+ class Rails5 < NewRelic::Control::Frameworks::Rails4
11
+ end
12
+ end
13
+ end
14
+ end
@@ -11,8 +11,8 @@ module NewRelic
11
11
  end
12
12
 
13
13
  MAJOR = 3
14
- MINOR = 14
15
- TINY = 3
14
+ MINOR = 15
15
+ TINY = 0
16
16
 
17
17
  begin
18
18
  require File.join(File.dirname(__FILE__), 'build')
@@ -2,12 +2,14 @@ namespace :newrelic do
2
2
  namespace :config do
3
3
  desc "Describe available New Relic configuration settings."
4
4
 
5
- GENERAL = "general"
6
- DISABLING = "disabling"
5
+ GENERAL = "general"
6
+ DISABLING = "disabling"
7
+ ATTRIBUTES = "attributes"
7
8
 
8
9
  SECTION_DESCRIPTIONS = {
9
10
  GENERAL => 'These settings are available for agent configuration. Some settings depend on your New Relic subscription level.',
10
11
  DISABLING => 'Use these settings to toggle instrumentation types during agent startup.',
12
+ ATTRIBUTES => '<a href="https://docs.newrelic.com/docs/features/agent-attributes">Attributes</a> are key-value pairs containing information that determines the properties of an event or transaction. These key-value pairs can be viewed within transaction traces in New Relic APM, traced errors in New Relic APM, transaction events in Insights, and page views in Insights. You can customize exactly which attributes will be sent to each of these destinations.',
11
13
  "transaction_tracer" => 'The <a href="/docs/apm/traces/transaction-traces/transaction-traces">transaction traces</a> feature collects detailed information from a selection of transactions, including a summary of the calling sequence, a breakdown of time spent, and a list of SQL queries and their query plans (on mysql and postgresql). Available features depend on your New Relic subscription level.',
12
14
  "error_collector" => 'The agent collects and reports all uncaught exceptions by default. These configuration options allow you to customize the error collection.',
13
15
  "browser_monitoring" => 'New Relic Browser\'s <a href="/docs/browser/new-relic-browser/page-load-timing/page-load-timing-process">page load timing</a> feature (sometimes referred to as real user monitoring or RUM) gives you insight into the performance real users are experiencing with your website. This is accomplished by measuring the time it takes for your users\' browsers to download and render your web pages by injecting a small amount of JavaScript code into the header and footer of each page.',
@@ -32,22 +34,23 @@ namespace :newrelic do
32
34
  next unless value[:public]
33
35
 
34
36
  section_key = GENERAL
35
- section = key.to_s.match(/(.*)\.(.*)/)
37
+ key = key.to_s
38
+ components = key.split(".")
36
39
 
37
- if section
38
- section_key = section[1]
39
- key = section[2]
40
- elsif key.to_s.match(/^disable_/)
40
+ if key.match(/^disable_/) # "disable_httpclient"
41
41
  section_key = DISABLING
42
- key = key.to_s
42
+ elsif components.length == 2 # "analytics_events.enabled"
43
+ section_key = components.first
44
+ elsif components[1] == "attributes" # "transaction_tracer.attributes.enabled"
45
+ section_key = ATTRIBUTES
43
46
  end
44
47
 
45
48
  sections[section_key] << {
46
- :key => format_key(section_key, key),
49
+ :key => key,
47
50
  :type => format_type(value[:type]),
48
51
  :description => format_description(value),
49
52
  :default => format_default_value(value),
50
- :env_var => format_env_var(section_key, key)
53
+ :env_var => format_env_var(key)
51
54
  }
52
55
  end
53
56
  sections
@@ -75,14 +78,6 @@ namespace :newrelic do
75
78
  end
76
79
  end
77
80
 
78
- def format_key(section_key, key)
79
- if section_key == GENERAL || section_key == DISABLING
80
- key.to_s
81
- else
82
- "#{section_key}.#{key}"
83
- end
84
- end
85
-
86
81
  def format_name(key)
87
82
  name = NAME_OVERRIDES[key]
88
83
  return name if name
@@ -114,11 +109,8 @@ namespace :newrelic do
114
109
  end
115
110
  end
116
111
 
117
- def format_env_var(section_key, key)
118
- v = "NEW_RELIC_"
119
- v << "#{section_key}_" unless section_key == GENERAL || section_key == DISABLING
120
- v << key.to_s
121
- v.upcase
112
+ def format_env_var(key)
113
+ "NEW_RELIC_#{key.gsub(".", "_").upcase}"
122
114
  end
123
115
 
124
116
  def pluck(key, config_hash)
@@ -4,7 +4,7 @@ rescue LoadError => e
4
4
  end
5
5
 
6
6
  if defined? Rake::TestTask
7
- namespace :test do |t|
7
+ namespace :test do
8
8
  def look_for_seed(tasks)
9
9
  matches = tasks.map { |t| /(seed=.*?)[,\]]/.match(t) }.compact
10
10
  if matches.any?
@@ -4,7 +4,7 @@
4
4
  # overhead. For more information, visit www.newrelic.com.
5
5
  #
6
6
  # Generated <%= Time.now.strftime('%B %d, %Y') %><%= ", for version #{@agent_version}" if @agent_version %>
7
- # <%= "\n# #{generated_for_user}\n#" if generated_for_user %>
7
+ #<%= "\n# #{generated_for_user}\n#" if generated_for_user %>
8
8
  # For full documentation of agent configuration options, please refer to
9
9
  # https://docs.newrelic.com/docs/agents/ruby-agent/installation-configuration/ruby-agent-configuration
10
10
 
@@ -19,7 +19,7 @@ Inc (http://www.newrelic.com). New Relic provides you with deep
19
19
  information about the performance of your web application as it runs
20
20
  in production. The New Relic Ruby Agent is dual-purposed as a either a
21
21
  Gem or plugin, hosted on
22
- http://github.com/newrelic/rpm/
22
+ https://github.com/newrelic/rpm/
23
23
  EOS
24
24
  s.email = "support@newrelic.com"
25
25
  s.executables = [ "mongrel_rpm", "newrelic_cmd", "newrelic", "nrdebug" ]
@@ -36,7 +36,7 @@ EOS
36
36
  file_list << build_file_path if File.exist?(build_file_path)
37
37
  s.files = file_list
38
38
 
39
- s.homepage = "http://www.github.com/newrelic/rpm"
39
+ s.homepage = "https://github.com/newrelic/rpm"
40
40
  s.require_paths = ["lib"]
41
41
  s.rubygems_version = Gem::VERSION
42
42
  s.summary = "New Relic Ruby Agent"
@@ -11,13 +11,17 @@ module Environments
11
11
  include Multiverse::Color
12
12
 
13
13
  BLACKLIST = {
14
+ "2.2.1" => ["rails50"],
15
+ "2.2.0" => ["rails50"],
16
+ "2.1" => ["rails50"],
17
+ "2.0" => ["rails50"],
14
18
  "2" => ["rails21", "rails22", "rails23"],
15
- "1.9" => ["rails21", "rails22"],
16
- "1.9.2" => ["rails40", "rails41", "rails42"],
17
- "1.8.7" => ["rails40", "rails41", "rails42"],
18
- "ree" => ["rails40", "rails41", "rails42"],
19
- "jruby-1.6" => ["rails40", "rails41", "rails42"],
20
- "jruby-1.7" => ["rails21", "rails22", "rails23"],
19
+ "1.9" => ["rails21", "rails22", "rails50"],
20
+ "1.9.2" => ["rails40", "rails41", "rails42", "rails50"],
21
+ "1.8.7" => ["rails40", "rails41", "rails42", "rails50"],
22
+ "ree" => ["rails40", "rails41", "rails42", "rails50"],
23
+ "jruby-1.6" => ["rails40", "rails41", "rails42", "rails50"],
24
+ "jruby-1.7" => ["rails21", "rails22", "rails23", "rails50"],
21
25
  "jruby-9.0" => ["rails21", "rails22", "rails23", "rails30", "rails31", "rails32"],
22
26
  "rbx-2.0" => ["rails21", "rails22", "rails23", "rails30", "rails31", "rails32"],
23
27
  }
@@ -24,7 +24,7 @@ platforms :jruby do
24
24
  end
25
25
 
26
26
  platforms :ruby do
27
- gem "mysql"
27
+ gem "mysql2", '~> 0.3.20'
28
28
  gem "sqlite3"
29
29
  end
30
30
 
@@ -1,5 +1,5 @@
1
1
  mysql: &mysql
2
- adapter: mysql
2
+ adapter: mysql2
3
3
  socket: <%= (`uname -s` =~ /Linux/ ) ? "" :"/tmp/mysql.sock" %>
4
4
  username: root
5
5
  host: localhost
@@ -16,7 +16,7 @@ platforms :jruby do
16
16
  end
17
17
 
18
18
  platforms :ruby do
19
- gem "mysql"
19
+ gem "mysql2", '~> 0.3.20'
20
20
  gem "sqlite3"
21
21
  end
22
22
 
@@ -1,5 +1,5 @@
1
1
  mysql: &mysql
2
- adapter: mysql
2
+ adapter: mysql2
3
3
  socket: <%= (`uname -s` =~ /Linux/ ) ? "" :"/tmp/mysql.sock" %>
4
4
  username: root
5
5
  host: localhost
@@ -16,7 +16,7 @@ platforms :jruby do
16
16
  end
17
17
 
18
18
  platforms :ruby do
19
- gem "mysql"
19
+ gem "mysql2"
20
20
  gem "sqlite3"
21
21
  end
22
22
 
@@ -1,5 +1,5 @@
1
1
  mysql: &mysql
2
- adapter: mysql
2
+ adapter: mysql2
3
3
  socket: <%= (`uname -s` =~ /Linux/ ) ? "" :"/tmp/mysql.sock" %>
4
4
  username: root
5
5
  host: localhost
@@ -0,0 +1,36 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rake'
4
+
5
+ gem 'rails', '~>5.0.0beta2'
6
+
7
+ gem 'minitest', '5.2.3'
8
+ gem 'mocha', :require => false
9
+ gem 'rack'
10
+ gem 'rack-test'
11
+
12
+ platforms :jruby do
13
+ gem "jruby-openssl"
14
+ end
15
+
16
+ platforms :ruby do
17
+ gem "mysql2"
18
+ end
19
+
20
+ platforms :rbx do
21
+ gem "rubysl"
22
+ gem "json"
23
+ # If we don't skip the require here, test-unit tries to install its at_exit
24
+ # hook and run when we run our rake task to create the test DB.
25
+ gem "rubysl-test-unit", :require => false
26
+ gem "racc" # https://github.com/rubinius/rubinius/issues/2632
27
+
28
+ # Compilation issues with rubysl-openssl 2.2.1, lock at 2.1.0 for now.
29
+ # https://github.com/rubysl/rubysl-openssl/issues/11
30
+ gem "rubysl-openssl", "2.1.0"
31
+ end
32
+
33
+ gem "newrelic_rpm", :path => "../../.."
34
+
35
+ gem 'pry', '~> 0.9.12'
36
+ gem 'hometown', '~> 0.2.5'
@@ -0,0 +1,11 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+ require 'rake'
6
+
7
+ RpmTestApp::Application.load_tasks
8
+ require 'tasks/all'
9
+
10
+ Rake::Task["default"].clear
11
+ task :default => [:'test:newrelic']
@@ -0,0 +1,18 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
5
+ require File.expand_path('../boot', __FILE__)
6
+
7
+ require 'rails/all'
8
+
9
+ Bundler.require(:default, Rails.env) if defined?(Bundler)
10
+
11
+ module RpmTestApp
12
+ class Application < Rails::Application
13
+ config.encoding = "utf-8"
14
+ config.filter_parameters += [:password]
15
+ config.secret_key_base = '414fd9af0cc192729b2b6bffe9e7077c9ac8eed5cbb74c8c4cd628906b716770598a2b7e1f328052753a4df72e559969dc05b408de73ce040c93cac7c51a348e'
16
+ config.eager_load = false
17
+ end
18
+ end
@@ -0,0 +1,10 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
5
+ require 'rubygems'
6
+
7
+ # Set up gems listed in the Gemfile.
8
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
9
+
10
+ require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
@@ -0,0 +1,26 @@
1
+ mysql: &mysql
2
+ adapter: mysql2
3
+ socket: <%= (`uname -s` =~ /Linux/ ) ? "" :"/tmp/mysql.sock" %>
4
+ username: root
5
+ host: localhost
6
+ database: <%= db = "#{ENV['RUBY_VERSION']}#{ENV['BRANCH']}"; db.empty? ? "rails_blog" : db %>
7
+
8
+ sqlite3: &sqlite3
9
+ <% if defined?(JRuby) %>
10
+ adapter: jdbcsqlite3
11
+ <% else %>
12
+ adapter: sqlite3
13
+ <% end %>
14
+ database: db/all.sqlite3
15
+ pool: 5
16
+ timeout: 5000
17
+ host: localhost
18
+
19
+ development:
20
+ <<: *sqlite3
21
+
22
+ test:
23
+ <<: *mysql
24
+
25
+ production:
26
+ <<: *mysql
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
5
+ require File.expand_path('../application', __FILE__)
6
+ RpmTestApp::Application.initialize!
@@ -0,0 +1,5 @@
1
+ # encoding: utf-8
2
+ # This file is distributed under New Relic's license terms.
3
+ # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
4
+
5
+ # File is required to exist by Rails
@@ -28,7 +28,8 @@
28
28
  "mysql",
29
29
  "postgres",
30
30
  "oracle",
31
- "cassandra"
31
+ "cassandra",
32
+ "sqlite"
32
33
  ],
33
34
  "sql": "SELECT * FROM t WHERE foo='bar/*' AND baz='whatever */qux'"
34
35
  },
@@ -62,7 +63,8 @@
62
63
  "mysql",
63
64
  "postgres",
64
65
  "oracle",
65
- "cassandra"
66
+ "cassandra",
67
+ "sqlite"
66
68
  ],
67
69
  "sql": "SELECT * FROM t WHERE foo='bar--' AND\n baz='qux--'"
68
70
  },
@@ -75,7 +77,8 @@
75
77
  "mysql",
76
78
  "postgres",
77
79
  "oracle",
78
- "cassandra"
80
+ "cassandra",
81
+ "sqlite"
79
82
  ],
80
83
  "sql": "SELECT * FROM foo WHERE bar='baz' /* Hide Me */"
81
84
  },
@@ -88,7 +91,8 @@
88
91
  "mysql",
89
92
  "postgres",
90
93
  "oracle",
91
- "cassandra"
94
+ "cassandra",
95
+ "sqlite"
92
96
  ],
93
97
  "sql": "SELECT * FROM foobar WHERE password='hunter2'\n-- No peeking!"
94
98
  },
@@ -101,7 +105,8 @@
101
105
  "mysql",
102
106
  "postgres",
103
107
  "oracle",
104
- "cassandra"
108
+ "cassandra",
109
+ "sqlite"
105
110
  ],
106
111
  "sql": "SELECT foo, bar FROM baz WHERE password='hunter2' # Secret"
107
112
  },
@@ -140,7 +145,8 @@
140
145
  "mysql",
141
146
  "postgres",
142
147
  "oracle",
143
- "cassandra"
148
+ "cassandra",
149
+ "sqlite"
144
150
  ],
145
151
  "sql": "SELECT c11.col1, c22.col2 FROM table c11, table c22 WHERE value='nothing'"
146
152
  },
@@ -155,7 +161,8 @@
155
161
  "mysql",
156
162
  "postgres",
157
163
  "oracle",
158
- "cassandra"
164
+ "cassandra",
165
+ "sqlite"
159
166
  ]
160
167
  },
161
168
  {
@@ -177,7 +184,8 @@
177
184
  "mysql",
178
185
  "postgres",
179
186
  "oracle",
180
- "cassandra"
187
+ "cassandra",
188
+ "sqlite"
181
189
  ],
182
190
  "sql": "SELECT * FROM table WHERE name='foo' AND value = 'bar'"
183
191
  },
@@ -190,7 +198,8 @@
190
198
  "mysql",
191
199
  "postgres",
192
200
  "oracle",
193
- "cassandra"
201
+ "cassandra",
202
+ "sqlite"
194
203
  ],
195
204
  "sql": "SELECT * FROM table WHERE col='foo\\''bar'",
196
205
  "comments": [
@@ -208,7 +217,8 @@
208
217
  "mysql",
209
218
  "postgres",
210
219
  "oracle",
211
- "cassandra"
220
+ "cassandra",
221
+ "sqlite"
212
222
  ],
213
223
  "sql": "SELECT * FROM table WHERE col1='foo\"bar' AND col2='what\"ever'"
214
224
  },
@@ -221,7 +231,8 @@
221
231
  "mysql",
222
232
  "postgres",
223
233
  "oracle",
224
- "cassandra"
234
+ "cassandra",
235
+ "sqlite"
225
236
  ],
226
237
  "sql": "select * from accounts where accounts.name != 'dude \n newline' order by accounts.name"
227
238
  },
@@ -257,7 +268,8 @@
257
268
  "mysql",
258
269
  "postgres",
259
270
  "oracle",
260
- "cassandra"
271
+ "cassandra",
272
+ "sqlite"
261
273
  ],
262
274
  "comments": [
263
275
  "If backslashes are being ignored in single-quoted strings",
@@ -284,7 +296,8 @@
284
296
  "mysql",
285
297
  "postgres",
286
298
  "oracle",
287
- "cassandra"
299
+ "cassandra",
300
+ "sqlite"
288
301
  ],
289
302
  "sql": "SELECT * FROM table WHERE foo='this string ends with a backslash\\\\'"
290
303
  },
@@ -299,7 +312,8 @@
299
312
  "mysql",
300
313
  "postgres",
301
314
  "oracle",
302
- "cassandra"
315
+ "cassandra",
316
+ "sqlite"
303
317
  ]
304
318
  },
305
319
  {
@@ -311,7 +325,8 @@
311
325
  "mysql",
312
326
  "postgres",
313
327
  "oracle",
314
- "cassandra"
328
+ "cassandra",
329
+ "sqlite"
315
330
  ],
316
331
  "sql": "INSERT INTO X values('', 'a''b c',0, 1 , 'd''e f''s h')"
317
332
  },
@@ -326,7 +341,8 @@
326
341
  "mysql",
327
342
  "postgres",
328
343
  "oracle",
329
- "cassandra"
344
+ "cassandra",
345
+ "sqlite"
330
346
  ],
331
347
  "pathological": true
332
348
  },
@@ -341,7 +357,8 @@
341
357
  "mysql",
342
358
  "postgres",
343
359
  "oracle",
344
- "cassandra"
360
+ "cassandra",
361
+ "sqlite"
345
362
  ],
346
363
  "pathological": true
347
364
  },
@@ -356,7 +373,8 @@
356
373
  "mysql",
357
374
  "postgres",
358
375
  "oracle",
359
- "cassandra"
376
+ "cassandra",
377
+ "sqlite"
360
378
  ],
361
379
  "pathological": true
362
380
  },
@@ -371,7 +389,8 @@
371
389
  "mysql",
372
390
  "postgres",
373
391
  "oracle",
374
- "cassandra"
392
+ "cassandra",
393
+ "sqlite"
375
394
  ],
376
395
  "pathological": true
377
396
  },
@@ -386,7 +405,8 @@
386
405
  "mysql",
387
406
  "postgres",
388
407
  "oracle",
389
- "cassandra"
408
+ "cassandra",
409
+ "sqlite"
390
410
  ],
391
411
  "pathological": true
392
412
  },
@@ -408,7 +428,8 @@
408
428
  "mysql",
409
429
  "postgres",
410
430
  "oracle",
411
- "cassandra"
431
+ "cassandra",
432
+ "sqlite"
412
433
  ],
413
434
  "obfuscated": [
414
435
  "?"
@@ -445,7 +466,8 @@
445
466
  "mysql",
446
467
  "postgres",
447
468
  "oracle",
448
- "cassandra"
469
+ "cassandra",
470
+ "sqlite"
449
471
  ]
450
472
  },
451
473
  {
@@ -458,7 +480,8 @@
458
480
  "mysql",
459
481
  "postgres",
460
482
  "oracle",
461
- "cassandra"
483
+ "cassandra",
484
+ "sqlite"
462
485
  ],
463
486
  "pathological": true
464
487
  },
@@ -509,7 +532,8 @@
509
532
  "select * from foo where bar=? and x=?"
510
533
  ],
511
534
  "dialects": [
512
- "cassandra"
535
+ "cassandra",
536
+ "sqlite"
513
537
  ]
514
538
  },
515
539
  {
@@ -519,7 +543,9 @@
519
543
  "select * from foo where bar=? and x=?"
520
544
  ],
521
545
  "dialects": [
522
- "mysql"
546
+ "mysql",
547
+ "cassandra",
548
+ "sqlite"
523
549
  ]
524
550
  },
525
551
  {
@@ -532,7 +558,8 @@
532
558
  "mysql",
533
559
  "postgres",
534
560
  "oracle",
535
- "cassandra"
561
+ "cassandra",
562
+ "sqlite"
536
563
  ]
537
564
  },
538
565
  {
@@ -585,7 +612,8 @@
585
612
  "dialects": [
586
613
  "mysql",
587
614
  "postgres",
588
- "cassandra"
615
+ "cassandra",
616
+ "sqlite"
589
617
  ]
590
618
  }
591
619
  ]