forest_liana 2.6.1 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7825474a2be0935a5146b4773dacf86a3bc235d5
4
- data.tar.gz: b49d46a5c6437577217acb96fc7153bd6734283e
3
+ metadata.gz: e2d05f6e1fc47af580463c80aa4280ec65496f31
4
+ data.tar.gz: a401f01f830a7f9c0f29cde8253d76d1e5d4685d
5
5
  SHA512:
6
- metadata.gz: c7401a19cbf53f08812bd083432f47e463bf49ad2dc6932220606f336bbe177a509e8a60aad2a09008de68f9ffb7f42ac33a6f2619fa7224892ed83a44a6f8bb
7
- data.tar.gz: 730f2b898f93860a23ec7bd95209bf65b471299ded19f79643409401ae2139102b243ea3008fcc75556ccc750151f59b3935534d4990e59fc6f44c0e89d73e82
6
+ metadata.gz: 19390d26df07518f0e348b309776cec643f66ba7b2b8d9f6e9450cbb1ace482031ae3ba04ab18818a4a63f2453eb1737a0265c512a020c2cee32a08c03c4674d
7
+ data.tar.gz: 9b1c599b01dd841082f876458a05c96e287a5b29e9a2b0c56a08c81a57966024ba8beb548b6bf855d5a5850d47c4d9bc020c07c62cd0424b20d5c2c5c7fa5b23
@@ -22,6 +22,9 @@ module ForestLiana
22
22
  format.json { render_jsonapi(getter) }
23
23
  format.csv { render_csv(getter, @resource) }
24
24
  end
25
+ rescue ForestLiana::Errors::LiveQueryError => error
26
+ render json: { errors: [{ status: 422, detail: error.message }] },
27
+ status: :unprocessable_entity, serializer: nil
25
28
  rescue => error
26
29
  FOREST_LOGGER.error "Records Index error: #{error}\n#{format_stacktrace(error)}"
27
30
  internal_server_error
@@ -34,8 +34,11 @@ module ForestLiana
34
34
  else
35
35
  render json: {status: 404}, status: :not_found, serializer: nil
36
36
  end
37
+ rescue ForestLiana::Errors::LiveQueryError => error
38
+ render json: { errors: [{ status: 422, detail: error.message }] },
39
+ status: :unprocessable_entity, serializer: nil
37
40
  rescue => error
38
- FOREST_LOGGER.error "Live Query error: #{error.message}"
41
+ FOREST_LOGGER.error "Live Query error: #{error.message}"
39
42
  render json: { errors: [{ status: 422, detail: error.message }] },
40
43
  status: :unprocessable_entity, serializer: nil
41
44
  end
@@ -0,0 +1,28 @@
1
+ module ForestLiana
2
+ class LiveQueryChecker
3
+ QUERY_SELECT = /\ASELECT\s.*FROM\s.*\z/im
4
+
5
+ def initialize(query, context)
6
+ @query = query
7
+ @context = context
8
+ end
9
+
10
+ def validate
11
+ raise generate_error 'You cannot execute an empty SQL query.' if @query.blank?
12
+
13
+ if @query.include?(';') && @query.index(';') < (@query.length - 1)
14
+ raise generate_error 'You cannot chain SQL queries.'
15
+ end
16
+
17
+ raise generate_error 'Only SELECT queries are allowed.' if QUERY_SELECT.match(@query).nil?
18
+ end
19
+
20
+ private
21
+
22
+ def generate_error message
23
+ error_message = "#{@context}: #{message}"
24
+ FOREST_LOGGER.error(error_message)
25
+ ForestLiana::Errors::LiveQueryError.new(error_message)
26
+ end
27
+ end
28
+ end
@@ -1,7 +1,5 @@
1
1
  module ForestLiana
2
2
  class QueryStatGetter
3
- QUERY_SELECT = /\ASELECT\s.*FROM\s.*\z/im
4
-
5
3
  attr_accessor :record
6
4
 
7
5
  def initialize(params)
@@ -11,7 +9,7 @@ module ForestLiana
11
9
  def perform
12
10
  raw_query = @params['query'].strip
13
11
 
14
- check_query(raw_query)
12
+ LiveQueryChecker.new(raw_query, 'Live Query Chart').validate()
15
13
 
16
14
  if @params['record_id']
17
15
  raw_query.gsub!('?', @params['record_id'].to_s)
@@ -69,14 +67,6 @@ module ForestLiana
69
67
 
70
68
  private
71
69
 
72
- def check_query(query)
73
- raise 'You cannot execute an empty SQL query.' if query.blank?
74
- if query.include?(';') && query.index(';') < (query.length - 1)
75
- raise 'You cannot chain SQL queries.'
76
- end
77
- raise 'Only SELECT queries are allowed.' if QUERY_SELECT.match(query).nil?
78
- end
79
-
80
70
  def error_message(result, key_names)
81
71
  "The result columns must be named #{key_names} instead of '#{result.keys.join("', '")}'"
82
72
  end
@@ -19,6 +19,22 @@ module ForestLiana
19
19
  @records = @records.where(@segment.where.call())
20
20
  end
21
21
 
22
+ # NOTICE: Live Query mode
23
+ if @params[:segmentQuery]
24
+ LiveQueryChecker.new(@params[:segmentQuery], 'Live Query Segment').validate()
25
+
26
+ begin
27
+ results = ActiveRecord::Base.connection.execute(@params[:segmentQuery])
28
+ rescue => error
29
+ error_message = "Live Query Segment: #{error.message}"
30
+ FOREST_LOGGER.error(error_message)
31
+ raise ForestLiana::Errors::LiveQueryError.new(error_message)
32
+ end
33
+
34
+ record_ids = results.to_a.map { |record| record['id'] }
35
+ @records = @records.where(id: record_ids)
36
+ end
37
+
22
38
  @records = search_query
23
39
  @records_to_count = @records
24
40
 
@@ -6,5 +6,11 @@ module ForestLiana
6
6
  super
7
7
  end
8
8
  end
9
+
10
+ class LiveQueryError < StandardError
11
+ def initialize(message="Invalid SQL query for this Live Query")
12
+ super
13
+ end
14
+ end
9
15
  end
10
16
  end
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "2.6.1"
2
+ VERSION = "2.7.0"
3
3
  end
Binary file
@@ -21751,3 +21751,448 @@ ForestLiana::ResourceUpdaterTest: test_Update_a_record_on_a_"serialize"_attribut
21751
21751
   (0.0ms) SAVEPOINT active_record_1
21752
21752
   (0.0ms) RELEASE SAVEPOINT active_record_1
21753
21753
   (0.0ms) rollback transaction
21754
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
21755
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
21756
+  (0.4ms)  SELECT sql
21757
+ FROM sqlite_master
21758
+ WHERE name='index_belongs_to_class_name_fields_on_foo_id' AND type='index'
21759
+ UNION ALL
21760
+ SELECT sql
21761
+ FROM sqlite_temp_master
21762
+ WHERE name='index_belongs_to_class_name_fields_on_foo_id' AND type='index'
21763
+ 
21764
+  (0.1ms) SELECT sql
21765
+ FROM sqlite_master
21766
+ WHERE name='index_belongs_to_fields_on_has_many_field_id' AND type='index'
21767
+ UNION ALL
21768
+ SELECT sql
21769
+ FROM sqlite_temp_master
21770
+ WHERE name='index_belongs_to_fields_on_has_many_field_id' AND type='index'
21771
+
21772
+  (0.1ms)  SELECT sql
21773
+ FROM sqlite_master
21774
+ WHERE name='index_belongs_to_fields_on_has_many_class_name_field_id' AND type='index'
21775
+ UNION ALL
21776
+ SELECT sql
21777
+ FROM sqlite_temp_master
21778
+ WHERE name='index_belongs_to_fields_on_has_many_class_name_field_id' AND type='index'
21779
+ 
21780
+  (0.1ms) SELECT sql
21781
+ FROM sqlite_master
21782
+ WHERE name='index_belongs_to_fields_on_has_one_field_id' AND type='index'
21783
+ UNION ALL
21784
+ SELECT sql
21785
+ FROM sqlite_temp_master
21786
+ WHERE name='index_belongs_to_fields_on_has_one_field_id' AND type='index'
21787
+
21788
+  (0.1ms)  SELECT sql
21789
+ FROM sqlite_master
21790
+ WHERE name='index_has_many_fields_on_has_many_through_field_id' AND type='index'
21791
+ UNION ALL
21792
+ SELECT sql
21793
+ FROM sqlite_temp_master
21794
+ WHERE name='index_has_many_fields_on_has_many_through_field_id' AND type='index'
21795
+ 
21796
+  (0.1ms) SELECT sql
21797
+ FROM sqlite_master
21798
+ WHERE name='index_polymorphic_fields_on_has_one_field_id' AND type='index'
21799
+ UNION ALL
21800
+ SELECT sql
21801
+ FROM sqlite_temp_master
21802
+ WHERE name='index_polymorphic_fields_on_has_one_field_id' AND type='index'
21803
+
21804
+  (0.1ms)  SELECT sql
21805
+ FROM sqlite_master
21806
+ WHERE name='index_trees_on_owner_id' AND type='index'
21807
+ UNION ALL
21808
+ SELECT sql
21809
+ FROM sqlite_temp_master
21810
+ WHERE name='index_trees_on_owner_id' AND type='index'
21811
+ 
21812
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
21813
+  (0.1ms) begin transaction
21814
+ Fixture Delete (1.1ms) DELETE FROM "has_many_through_fields"
21815
+ Fixture Insert (0.4ms) INSERT INTO "has_many_through_fields" ("id") VALUES (1)
21816
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (2)
21817
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (3)
21818
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (4)
21819
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (5)
21820
+ Fixture Insert (0.1ms) INSERT INTO "has_many_through_fields" ("id") VALUES (6)
21821
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (7)
21822
+ Fixture Insert (0.1ms) INSERT INTO "has_many_through_fields" ("id") VALUES (8)
21823
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (9)
21824
+ Fixture Insert (0.0ms) INSERT INTO "has_many_through_fields" ("id") VALUES (10)
21825
+ Fixture Delete (0.3ms) DELETE FROM "string_fields"
21826
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (1, 'Test 1')
21827
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (2, 'Test 2')
21828
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (3, 'Test 3')
21829
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (4, 'Test 4')
21830
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (5, 'Test 5')
21831
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (6, 'Test 6')
21832
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (7, 'Test 7')
21833
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (8, 'Test 8')
21834
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (9, 'Test 9')
21835
+ Fixture Insert (0.1ms) INSERT INTO "string_fields" ("id", "field") VALUES (10, 'Test 10')
21836
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (11, 'Test 11')
21837
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (12, 'Test 12')
21838
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (13, 'Test 13')
21839
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (14, 'Test 14')
21840
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (15, 'Test 15')
21841
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (16, 'Test 16')
21842
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (17, 'Test 17')
21843
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (18, 'Test 18')
21844
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (19, 'Test 19')
21845
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (20, 'Test 20')
21846
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (21, 'Test 21')
21847
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (22, 'Test 22')
21848
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (23, 'Test 23')
21849
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (24, 'Test 24')
21850
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (25, 'Test 25')
21851
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (26, 'Test 26')
21852
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (27, 'Test 27')
21853
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (28, 'Test 28')
21854
+ Fixture Insert (0.1ms) INSERT INTO "string_fields" ("id", "field") VALUES (29, 'Test 29')
21855
+ Fixture Insert (0.0ms) INSERT INTO "string_fields" ("id", "field") VALUES (30, 'Test 30')
21856
+ Fixture Delete (1.3ms) DELETE FROM "belongs_to_fields"
21857
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (1, 1, 1)
21858
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (2, 2, 1)
21859
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (3, 3, 1)
21860
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (4, 4, 2)
21861
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (5, 5, 2)
21862
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (6, 6, 2)
21863
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (7, 7, 3)
21864
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (8, 8, 3)
21865
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (9, 9, 3)
21866
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (10, 10, 4)
21867
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (11, 11, 4)
21868
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (12, 12, 4)
21869
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (13, 13, 5)
21870
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (14, 14, 5)
21871
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (15, 15, 5)
21872
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (16, 16, 6)
21873
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (17, 17, 6)
21874
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (18, 18, 6)
21875
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (19, 19, 7)
21876
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (20, 20, 7)
21877
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (21, 21, 7)
21878
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (22, 22, 7)
21879
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (23, 23, 8)
21880
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (24, 24, 8)
21881
+ Fixture Insert (0.0ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (25, 25, 9)
21882
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (26, 26, 9)
21883
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (27, 27, 9)
21884
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (28, 28, 10)
21885
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (29, 29, 10)
21886
+ Fixture Insert (0.1ms) INSERT INTO "belongs_to_fields" ("id", "has_one_field_id", "has_many_field_id") VALUES (30, 30, 10)
21887
+ Fixture Delete (1.0ms) DELETE FROM "trees"
21888
+ Fixture Insert (0.2ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (1, 'Oak', 1, '2011-02-11 11:00:00.000000', '2011-02-11 11:00:00.000000')
21889
+ Fixture Insert (0.1ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (2, 'Mapple', 2, '2011-02-15 21:00:00.000000', '2011-02-15 21:00:00.000000')
21890
+ Fixture Insert (0.1ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (3, 'Mapple', 2, '2013-04-11 12:00:00.000000', '2013-04-11 12:00:00.000000')
21891
+ Fixture Insert (0.0ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (4, 'Oak', 2, '2016-06-18 09:00:00.000000', '2016-06-18 09:00:00.000000')
21892
+ Fixture Insert (0.1ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (5, 'Oak', 3, '2015-06-18 09:00:00.000000', '2015-06-18 09:00:00.000000')
21893
+ Fixture Insert (0.0ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (6, 'Oak', 3, '2018-06-01 18:27:39.000000', '2018-06-01 18:27:39.000000')
21894
+ Fixture Insert (0.0ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (7, 'Sequoia', 1, '2018-06-01 18:27:39.000000', '2018-06-01 18:27:39.000000')
21895
+ Fixture Insert (0.2ms) INSERT INTO "trees" ("id", "name", "owner_id", "created_at", "updated_at") VALUES (8, 'Fir', 1, '2018-06-01 18:27:39.000000', '2018-06-01 18:27:39.000000')
21896
+ Fixture Delete (0.6ms) DELETE FROM "has_one_fields"
21897
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (1, 't', 0)
21898
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (2, 't', 0)
21899
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (3, 't', 0)
21900
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (4, 't', 0)
21901
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (5, 't', 0)
21902
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (6, 't', 0)
21903
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (7, 't', 0)
21904
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (8, 't', 0)
21905
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (9, 't', 0)
21906
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (10, 't', 0)
21907
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (11, 't', 0)
21908
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (12, 't', 0)
21909
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (13, 't', 0)
21910
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (14, 't', 0)
21911
+ Fixture Insert (0.1ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (15, 't', 0)
21912
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (16, 't', 0)
21913
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (17, 't', 0)
21914
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (18, 't', 0)
21915
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (19, 't', 0)
21916
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (20, 't', 0)
21917
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (21, 't', 0)
21918
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (22, 't', 0)
21919
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (23, 't', 0)
21920
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (24, 't', 0)
21921
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (25, 't', 0)
21922
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (26, 't', 0)
21923
+ Fixture Insert (4.6ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (27, 't', 0)
21924
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (28, 't', 0)
21925
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (29, 't', 0)
21926
+ Fixture Insert (0.0ms) INSERT INTO "has_one_fields" ("id", "checked", "status") VALUES (30, 't', 1)
21927
+ Fixture Delete (0.5ms) DELETE FROM "owners"
21928
+ Fixture Insert (0.1ms) INSERT INTO "owners" ("id", "name", "created_at", "updated_at") VALUES (1, 'Sandro Munda', '2017-05-30 09:00:00.000000', '2018-06-27 20:00:00.000000')
21929
+ Fixture Insert (0.1ms) INSERT INTO "owners" ("id", "name", "created_at", "updated_at") VALUES (2, 'Arnaud Besnier', '2018-05-02 09:00:00.000000', '2018-06-28 08:00:00.000000')
21930
+ Fixture Insert (0.1ms) INSERT INTO "owners" ("id", "name", "created_at", "updated_at") VALUES (3, 'John Doe', '2016-05-02 09:00:00.000000', '2017-06-28 08:00:00.000000')
21931
+ Fixture Delete (0.9ms) DELETE FROM "has_many_fields"
21932
+ Fixture Insert (0.1ms) INSERT INTO "has_many_fields" ("id") VALUES (1)
21933
+ Fixture Insert (0.1ms) INSERT INTO "has_many_fields" ("id") VALUES (2)
21934
+ Fixture Insert (0.1ms) INSERT INTO "has_many_fields" ("id") VALUES (3)
21935
+ Fixture Insert (0.1ms) INSERT INTO "has_many_fields" ("id") VALUES (4)
21936
+ Fixture Insert (0.1ms) INSERT INTO "has_many_fields" ("id", "has_many_through_field_id") VALUES (5, 3)
21937
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id", "has_many_through_field_id") VALUES (6, 2)
21938
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id") VALUES (7)
21939
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id", "has_many_through_field_id") VALUES (8, 2)
21940
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id") VALUES (9)
21941
+ Fixture Insert (0.0ms) INSERT INTO "has_many_fields" ("id") VALUES (10)
21942
+ Fixture Delete (0.1ms) DELETE FROM "serialize_fields"
21943
+ Fixture Insert (0.0ms) INSERT INTO "serialize_fields" ("id", "field") VALUES (1, 'value 1')
21944
+ Fixture Insert (0.0ms) INSERT INTO "serialize_fields" ("id", "field") VALUES (2, 'value 2')
21945
+ Fixture Insert (0.0ms) INSERT INTO "serialize_fields" ("id", "field") VALUES (3, 'value 3')
21946
+ Fixture Insert (0.0ms) INSERT INTO "serialize_fields" ("id", "field") VALUES (4, 'value 4')
21947
+ Fixture Insert (0.0ms) INSERT INTO "serialize_fields" ("id", "field") VALUES (5, 'value 5')
21948
+  (2.4ms) commit transaction
21949
+  (0.0ms) begin transaction
21950
+ -----------------------------------------------------------
21951
+ ForestLiana::SchemaAdapterTest: test_belongsTo_relationship
21952
+ -----------------------------------------------------------
21953
+  (0.1ms) rollback transaction
21954
+  (0.2ms) begin transaction
21955
+ ----------------------------------------------------------------------------------
21956
+ ForestLiana::SchemaAdapterTest: test_hasMany_relationhip_with_specified_class_name
21957
+ ----------------------------------------------------------------------------------
21958
+  (0.1ms) rollback transaction
21959
+  (0.0ms) begin transaction
21960
+ --------------------------------------------------------
21961
+ ForestLiana::SchemaAdapterTest: test_hasOne_relationship
21962
+ --------------------------------------------------------
21963
+  (0.0ms) rollback transaction
21964
+  (0.1ms) begin transaction
21965
+ ---------------------------------------------------------------------
21966
+ ForestLiana::SchemaAdapterTest: test_Date_should_have_the_type_`Date`
21967
+ ---------------------------------------------------------------------
21968
+  (0.0ms) rollback transaction
21969
+  (0.0ms) begin transaction
21970
+ -------------------------------------------------------------------------
21971
+ ForestLiana::SchemaAdapterTest: test_DateTime_should_have_the_type_`Date`
21972
+ -------------------------------------------------------------------------
21973
+  (0.0ms) rollback transaction
21974
+  (0.0ms) begin transaction
21975
+ ------------------------------------------------------------------------
21976
+ ForestLiana::SchemaAdapterTest: test_Float_should_have_the_type_`Number`
21977
+ ------------------------------------------------------------------------
21978
+  (0.0ms) rollback transaction
21979
+  (0.1ms) begin transaction
21980
+ --------------------------------------------------------------------------
21981
+ ForestLiana::SchemaAdapterTest: test_Decimal_should_have_the_type_`Number`
21982
+ --------------------------------------------------------------------------
21983
+  (0.0ms) rollback transaction
21984
+  (0.0ms) begin transaction
21985
+ ------------------------------------------------------------------------------------
21986
+ ForestLiana::SchemaAdapterTest: test_belongsTo_relationhip_with_specified_class_name
21987
+ ------------------------------------------------------------------------------------
21988
+  (0.0ms) rollback transaction
21989
+  (0.1ms) begin transaction
21990
+ ---------------------------------------------------------------------------
21991
+ ForestLiana::SchemaAdapterTest: test_Boolean_should_have_the_type_`Boolean`
21992
+ ---------------------------------------------------------------------------
21993
+  (0.0ms) rollback transaction
21994
+  (0.0ms) begin transaction
21995
+ -------------------------------------------------------------------------
21996
+ ForestLiana::SchemaAdapterTest: test_String_should_have_the_type_`String`
21997
+ -------------------------------------------------------------------------
21998
+  (0.0ms) rollback transaction
21999
+  (0.0ms) begin transaction
22000
+ ---------------------------------------------------------
22001
+ ForestLiana::SchemaAdapterTest: test_hasMany_relationship
22002
+ ---------------------------------------------------------
22003
+  (0.1ms) rollback transaction
22004
+  (0.0ms) begin transaction
22005
+ --------------------------------------------------------------------------
22006
+ ForestLiana::SchemaAdapterTest: test_Integer_should_have_the_type_`Number`
22007
+ --------------------------------------------------------------------------
22008
+  (0.1ms) rollback transaction
22009
+  (0.1ms) begin transaction
22010
+ -----------------------------------
22011
+ ForestLiana::RouteTest: test_Routes
22012
+ -----------------------------------
22013
+  (0.1ms) rollback transaction
22014
+  (0.0ms) begin transaction
22015
+ -------------------------------------------------------------------------------------------
22016
+ ForestLiana::ResourcesGetterTest: test_Filter_on_an_updated_at_field_of_the_main_collection
22017
+ -------------------------------------------------------------------------------------------
22018
+ SQL (0.2ms) SELECT "owners"."id" AS t0_r0, "owners"."name" AS t0_r1, "owners"."created_at" AS t0_r2, "owners"."updated_at" AS t0_r3 FROM "owners" WHERE ("owners"."updated_at" BETWEEN '2017-01-01 08:00:00 UTC' AND '2018-01-01 07:59:59 UTC') ORDER BY owners.created_at DESC LIMIT 10 OFFSET 0
22019
+  (0.1ms) SELECT COUNT(*) FROM "owners" WHERE ("owners"."updated_at" BETWEEN '2017-01-01 08:00:00 UTC' AND '2018-01-01 07:59:59 UTC')
22020
+  (0.0ms) rollback transaction
22021
+  (0.0ms) begin transaction
22022
+ ----------------------------------------------------------
22023
+ ForestLiana::ResourcesGetterTest: test_Filter_after_x_days
22024
+ ----------------------------------------------------------
22025
+ SQL (0.1ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4 FROM "trees" WHERE ("trees"."created_at" > '2018-06-01 18:26:40 UTC') ORDER BY trees.created_at DESC LIMIT 10 OFFSET 0
22026
+  (0.1ms) SELECT COUNT(*) FROM "trees" WHERE ("trees"."created_at" > '2018-06-01 18:26:40 UTC')
22027
+  (0.1ms) rollback transaction
22028
+  (0.0ms) begin transaction
22029
+ -----------------------------------------------------------------
22030
+ ForestLiana::ResourcesGetterTest: test_StringField_page_2_size_10
22031
+ -----------------------------------------------------------------
22032
+ SQL (0.1ms) SELECT "string_fields"."id" AS t0_r0, "string_fields"."field" AS t0_r1 FROM "string_fields" ORDER BY string_fields.id DESC LIMIT 10 OFFSET 10
22033
+  (0.1ms) SELECT COUNT(*) FROM "string_fields"
22034
+  (0.0ms) rollback transaction
22035
+  (0.1ms) begin transaction
22036
+ ------------------------------------------------------------------------------------------------------
22037
+ ForestLiana::ResourcesGetterTest: test_Filter_equal_on_an_updated_at_field_of_an_associated_collection
22038
+ ------------------------------------------------------------------------------------------------------
22039
+ SQL (0.2ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.updated_at = 'Sat Jul 02 2016 11:52:00 GMT-0400 (EDT)') ORDER BY trees.created_at DESC LIMIT 10 OFFSET 0
22040
+  (0.1ms) SELECT COUNT(DISTINCT "trees"."id") FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.updated_at = 'Sat Jul 02 2016 11:52:00 GMT-0400 (EDT)')
22041
+  (0.0ms) rollback transaction
22042
+  (0.0ms) begin transaction
22043
+ ------------------------------------------------------------------------------------
22044
+ ForestLiana::ResourcesGetterTest: test_Sort_on_an_ambiguous_field_name_with_a_filter
22045
+ ------------------------------------------------------------------------------------
22046
+ SQL (0.1ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.name = 'Arnaud Besnier') ORDER BY trees.name DESC LIMIT 10 OFFSET 0
22047
+  (0.5ms) SELECT COUNT(DISTINCT "trees"."id") FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.name = 'Arnaud Besnier')
22048
+  (0.0ms) rollback transaction
22049
+  (0.7ms) begin transaction
22050
+ ------------------------------------------------------------------------------------------------
22051
+ ForestLiana::ResourcesGetterTest: test_Filter_on_an_updated_at_field_of_an_associated_collection
22052
+ ------------------------------------------------------------------------------------------------
22053
+ SQL (0.2ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.updated_at BETWEEN '2017-01-01 08:00:00 UTC' AND '2018-01-01 07:59:59 UTC') ORDER BY trees.created_at DESC LIMIT 10 OFFSET 0
22054
+  (0.1ms) SELECT COUNT(DISTINCT "trees"."id") FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE (owners.updated_at BETWEEN '2017-01-01 08:00:00 UTC' AND '2018-01-01 07:59:59 UTC')
22055
+  (0.1ms) rollback transaction
22056
+  (0.0ms) begin transaction
22057
+ -----------------------------------------------------------------------
22058
+ ForestLiana::ResourcesGetterTest: test_Sort_by_a_belongs_to_association
22059
+ -----------------------------------------------------------------------
22060
+ SQL (0.1ms) SELECT "belongs_to_fields"."id" AS t0_r0, "belongs_to_fields"."has_one_field_id" AS t0_r1, "belongs_to_fields"."has_many_class_name_field_id" AS t0_r2, "belongs_to_fields"."has_many_field_id" AS t0_r3, "has_one_fields"."id" AS t1_r0, "has_one_fields"."checked" AS t1_r1, "has_one_fields"."status" AS t1_r2, "has_many_fields"."id" AS t2_r0, "has_many_fields"."has_many_through_field_id" AS t2_r1, "has_many_class_name_fields"."id" AS t3_r0 FROM "belongs_to_fields" LEFT OUTER JOIN "has_one_fields" ON "has_one_fields"."id" = "belongs_to_fields"."has_one_field_id" LEFT OUTER JOIN "has_many_fields" ON "has_many_fields"."id" = "belongs_to_fields"."has_many_field_id" LEFT OUTER JOIN "has_many_class_name_fields" ON "has_many_class_name_fields"."id" = "belongs_to_fields"."has_many_class_name_field_id" ORDER BY "has_one_fields"."id" ASC LIMIT 10 OFFSET 0
22061
+  (0.1ms) SELECT COUNT(*) FROM "belongs_to_fields"
22062
+  (0.1ms) rollback transaction
22063
+  (0.0ms) begin transaction
22064
+ --------------------------------------------------------------------
22065
+ ForestLiana::ResourcesGetterTest: test_Sort_by_a_has_one_association
22066
+ --------------------------------------------------------------------
22067
+ SQL (0.5ms) SELECT "has_one_fields"."id" AS t0_r0, "has_one_fields"."checked" AS t0_r1, "has_one_fields"."status" AS t0_r2, "belongs_to_fields"."id" AS t1_r0, "belongs_to_fields"."has_one_field_id" AS t1_r1, "belongs_to_fields"."has_many_class_name_field_id" AS t1_r2, "belongs_to_fields"."has_many_field_id" AS t1_r3, "belongs_to_class_name_fields"."id" AS t2_r0, "belongs_to_class_name_fields"."foo_id" AS t2_r1 FROM "has_one_fields" LEFT OUTER JOIN "belongs_to_fields" ON "belongs_to_fields"."has_one_field_id" = "has_one_fields"."id" LEFT OUTER JOIN "belongs_to_class_name_fields" ON "belongs_to_class_name_fields"."foo_id" = "has_one_fields"."id" ORDER BY "belongs_to_fields"."id" DESC LIMIT 10 OFFSET 0
22068
+  (0.1ms) SELECT COUNT(*) FROM "has_one_fields"
22069
+  (0.0ms) rollback transaction
22070
+  (0.0ms) begin transaction
22071
+ ----------------------------------------------------------------
22072
+ ForestLiana::ResourcesGetterTest: test_Filter_on_ambiguous_field
22073
+ ----------------------------------------------------------------
22074
+ SQL (0.2ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE ("trees"."created_at" > '2015-06-18 08:00:00') AND (owners.name = 'Arnaud Besnier') ORDER BY trees.created_at DESC LIMIT 10 OFFSET 0
22075
+  (0.1ms) SELECT COUNT(DISTINCT "trees"."id") FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE ("trees"."created_at" > '2015-06-18 08:00:00') AND (owners.name = 'Arnaud Besnier')
22076
+  (0.0ms) rollback transaction
22077
+  (0.0ms) begin transaction
22078
+ -----------------------------------------------------------------
22079
+ ForestLiana::ResourcesGetterTest: test_StringField_page_1_size_15
22080
+ -----------------------------------------------------------------
22081
+ SQL (0.1ms) SELECT "string_fields"."id" AS t0_r0, "string_fields"."field" AS t0_r1 FROM "string_fields" ORDER BY string_fields.id DESC LIMIT 15 OFFSET 0
22082
+  (0.0ms) SELECT COUNT(*) FROM "string_fields"
22083
+  (0.0ms) rollback transaction
22084
+  (0.0ms) begin transaction
22085
+ ------------------------------------------------------------
22086
+ ForestLiana::ResourcesGetterTest: test_Filter_before_x_hours
22087
+ ------------------------------------------------------------
22088
+ SQL (0.1ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4 FROM "trees" WHERE ("trees"."created_at" < '2018-06-01 18:26:40 UTC') ORDER BY trees.created_at DESC LIMIT 10 OFFSET 0
22089
+  (0.0ms) SELECT COUNT(*) FROM "trees" WHERE ("trees"."created_at" < '2018-06-01 18:26:40 UTC')
22090
+ Owner Load (0.2ms) SELECT "owners".* FROM "owners" WHERE "owners"."id" = ? LIMIT 1 [["id", 2]]
22091
+  (0.1ms) rollback transaction
22092
+  (0.0ms) begin transaction
22093
+ ----------------------------------------------------------------
22094
+ ForestLiana::ResourcesGetterTest: test_StringField_sort_by_field
22095
+ ----------------------------------------------------------------
22096
+ SQL (0.2ms) SELECT "string_fields"."id" AS t0_r0, "string_fields"."field" AS t0_r1 FROM "string_fields" ORDER BY string_fields.field DESC LIMIT 10 OFFSET 0
22097
+  (0.0ms) SELECT COUNT(*) FROM "string_fields"
22098
+  (0.0ms) rollback transaction
22099
+  (0.0ms) begin transaction
22100
+ ---------------------------
22101
+ ForestLianaTest: test_truth
22102
+ ---------------------------
22103
+  (0.0ms) rollback transaction
22104
+  (0.0ms) begin transaction
22105
+ -------------------------------------------------------------------------------------------------
22106
+ ForestLiana::ValueStatGetterTest: test_Value_stat_getter_with_a_filter_on_a_belongs_to_enum_field
22107
+ -------------------------------------------------------------------------------------------------
22108
+  (0.3ms) SELECT DISTINCT COUNT(DISTINCT "belongs_to_fields"."id") FROM "belongs_to_fields" LEFT OUTER JOIN "has_one_fields" ON "has_one_fields"."id" = "belongs_to_fields"."has_one_field_id" LEFT OUTER JOIN "has_many_fields" ON "has_many_fields"."id" = "belongs_to_fields"."has_many_field_id" LEFT OUTER JOIN "has_many_class_name_fields" ON "has_many_class_name_fields"."id" = "belongs_to_fields"."has_many_class_name_field_id" WHERE ("has_one_fields"."status" = '1')
22109
+  (4.0ms) rollback transaction
22110
+  (0.1ms) begin transaction
22111
+ -----------------------------------------------------------------------------
22112
+ ForestLiana::ValueStatGetterTest: test_Value_stat_getter_with_a_simple_filter
22113
+ -----------------------------------------------------------------------------
22114
+  (0.5ms) SELECT DISTINCT COUNT(DISTINCT "boolean_fields"."id") FROM "boolean_fields" WHERE ("boolean_fields"."field" = 1)
22115
+  (0.1ms) rollback transaction
22116
+  (0.1ms) begin transaction
22117
+ ----------------------------------------------------------------------------------------------------
22118
+ ForestLiana::ValueStatGetterTest: test_Value_stat_getter_with_a_filter_on_a_belongs_to_boolean_field
22119
+ ----------------------------------------------------------------------------------------------------
22120
+  (0.2ms) SELECT DISTINCT COUNT(DISTINCT "belongs_to_fields"."id") FROM "belongs_to_fields" LEFT OUTER JOIN "has_one_fields" ON "has_one_fields"."id" = "belongs_to_fields"."has_one_field_id" LEFT OUTER JOIN "has_many_fields" ON "has_many_fields"."id" = "belongs_to_fields"."has_many_field_id" LEFT OUTER JOIN "has_many_class_name_fields" ON "has_many_class_name_fields"."id" = "belongs_to_fields"."has_many_class_name_field_id" WHERE ("has_one_fields"."checked" = 0)
22121
+  (0.1ms) rollback transaction
22122
+  (0.1ms) begin transaction
22123
+ ----------------------------------------------------------------------------------------------------
22124
+ ForestLiana::ValueStatGetterTest: test_Value_stat_getter_with_a_filter_on_a_belongs_to_integer_field
22125
+ ----------------------------------------------------------------------------------------------------
22126
+  (0.2ms) SELECT DISTINCT COUNT(DISTINCT "belongs_to_fields"."id") FROM "belongs_to_fields" LEFT OUTER JOIN "has_one_fields" ON "has_one_fields"."id" = "belongs_to_fields"."has_one_field_id" LEFT OUTER JOIN "has_many_fields" ON "has_many_fields"."id" = "belongs_to_fields"."has_many_field_id" LEFT OUTER JOIN "has_many_class_name_fields" ON "has_many_class_name_fields"."id" = "belongs_to_fields"."has_many_class_name_field_id" WHERE ("has_one_fields"."id" = '3')
22127
+  (0.0ms) rollback transaction
22128
+  (0.1ms) begin transaction
22129
+ ---------------------------------------------------------------------------------------------------------
22130
+ ForestLiana::ResourceUpdaterTest: test_Update_a_record_on_a_"serialize"_attribute_with_a_bad_format_value
22131
+ ---------------------------------------------------------------------------------------------------------
22132
+ SerializeField Load (0.1ms) SELECT "serialize_fields".* FROM "serialize_fields" WHERE "serialize_fields"."id" = ? LIMIT 1 [["id", 1]]
22133
+  (0.1ms) rollback transaction
22134
+  (0.0ms) begin transaction
22135
+ ------------------------------------------------------------------------------------------------------
22136
+ ForestLiana::ResourceUpdaterTest: test_Update_a_record_on_a_"serialize"_attribute_with_a_missing_value
22137
+ ------------------------------------------------------------------------------------------------------
22138
+ SerializeField Load (0.1ms) SELECT "serialize_fields".* FROM "serialize_fields" WHERE "serialize_fields"."id" = ? LIMIT 1 [["id", 1]]
22139
+  (0.1ms) SAVEPOINT active_record_1
22140
+  (0.1ms) RELEASE SAVEPOINT active_record_1
22141
+  (0.1ms) rollback transaction
22142
+  (0.0ms) begin transaction
22143
+ ------------------------------------------------------------------------------------------------------------
22144
+ ForestLiana::ResourceUpdaterTest: test_Update_a_record_on_a_"serialize"_attribute_with_a_well_formated_value
22145
+ ------------------------------------------------------------------------------------------------------------
22146
+ SerializeField Load (0.1ms) SELECT "serialize_fields".* FROM "serialize_fields" WHERE "serialize_fields"."id" = ? LIMIT 1 [["id", 1]]
22147
+  (0.0ms) SAVEPOINT active_record_1
22148
+ SQL (0.9ms) UPDATE "serialize_fields" SET "field" = ? WHERE "serialize_fields"."id" = ? [["field", "---\n- test\n- test\n"], ["id", 1]]
22149
+  (0.0ms) RELEASE SAVEPOINT active_record_1
22150
+  (0.5ms) rollback transaction
22151
+  (0.0ms) begin transaction
22152
+ ---------------------------------------------------------------------------------------------------
22153
+ ForestLiana::ResourceUpdaterTest: test_Update_a_record_on_a_"serialize"_attribute_with_a_null_value
22154
+ ---------------------------------------------------------------------------------------------------
22155
+ SerializeField Load (0.1ms) SELECT "serialize_fields".* FROM "serialize_fields" WHERE "serialize_fields"."id" = ? LIMIT 1 [["id", 1]]
22156
+  (0.0ms) SAVEPOINT active_record_1
22157
+ SQL (0.2ms) UPDATE "serialize_fields" SET "field" = ? WHERE "serialize_fields"."id" = ? [["field", nil], ["id", 1]]
22158
+  (0.0ms) RELEASE SAVEPOINT active_record_1
22159
+  (0.4ms) rollback transaction
22160
+  (0.1ms) begin transaction
22161
+ -----------------------------------------------------------------------------------------
22162
+ ForestLiana::PieStatGetterTest: test_Pie_stat_getter_with_an_aggregate_on_a_boolean_field
22163
+ -----------------------------------------------------------------------------------------
22164
+  (0.2ms) SELECT COUNT(*) AS count_all, boolean_fields.field AS boolean_fields_field FROM "boolean_fields" GROUP BY boolean_fields.field ORDER BY count_all DESC
22165
+  (0.0ms) rollback transaction
22166
+  (0.1ms) begin transaction
22167
+ ---------------------------------------------------------------------------------------
22168
+ ForestLiana::PieStatGetterTest: test_Pie_stat_getter_with_an_aggregate_on_a_foreign_key
22169
+ ---------------------------------------------------------------------------------------
22170
+  (0.6ms) SELECT COUNT(DISTINCT "belongs_to_fields"."id") AS count_id, belongs_to_fields.has_one_field_id AS belongs_to_fields_has_one_field_id FROM "belongs_to_fields" LEFT OUTER JOIN "has_one_fields" ON "has_one_fields"."id" = "belongs_to_fields"."has_one_field_id" LEFT OUTER JOIN "has_many_fields" ON "has_many_fields"."id" = "belongs_to_fields"."has_many_field_id" LEFT OUTER JOIN "has_many_class_name_fields" ON "has_many_class_name_fields"."id" = "belongs_to_fields"."has_many_class_name_field_id" GROUP BY belongs_to_fields.has_one_field_id ORDER BY count_id DESC
22171
+  (0.1ms) rollback transaction
22172
+  (0.1ms) begin transaction
22173
+ ------------------------------------------------------------------
22174
+ ForestLiana::HasManyGetterTest: test_HasMany_Getter_page_1_size_15
22175
+ ------------------------------------------------------------------
22176
+ Owner Load (0.1ms) SELECT "owners".* FROM "owners" WHERE "owners"."id" = ? LIMIT 1 [["id", 1]]
22177
+ SQL (0.2ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? [["owner_id", 1]]
22178
+  (0.2ms) SELECT COUNT(DISTINCT count_column) FROM (SELECT "trees"."id" AS count_column FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? LIMIT 15 OFFSET 0) subquery_for_count [["owner_id", 1]]
22179
+ SQL (0.2ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? ORDER BY "trees"."id" ASC LIMIT 1 OFFSET 0 [["owner_id", 1]]
22180
+  (0.1ms) rollback transaction
22181
+  (0.1ms) begin transaction
22182
+ -------------------------------------------------------------------------
22183
+ ForestLiana::HasManyGetterTest: test_HasMany_Getter_with_search_parameter
22184
+ -------------------------------------------------------------------------
22185
+ Owner Load (0.1ms) SELECT "owners".* FROM "owners" WHERE "owners"."id" = ? LIMIT 1 [["id", 1]]
22186
+ SQL (0.1ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? AND (LOWER("trees"."name") LIKE '%fir%') [["owner_id", 1]]
22187
+  (0.2ms) SELECT COUNT(DISTINCT count_column) FROM (SELECT "trees"."id" AS count_column FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? AND (LOWER("trees"."name") LIKE '%fir%') LIMIT 15 OFFSET 0) subquery_for_count [["owner_id", 1]]
22188
+ SQL (0.1ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? AND (LOWER("trees"."name") LIKE '%fir%') ORDER BY "trees"."id" ASC LIMIT 1 OFFSET 0 [["owner_id", 1]]
22189
+  (0.1ms) rollback transaction
22190
+  (0.0ms) begin transaction
22191
+ -----------------------------------------------------------------------
22192
+ ForestLiana::HasManyGetterTest: test_HasMany_Getter_with_sort_parameter
22193
+ -----------------------------------------------------------------------
22194
+ Owner Load (0.1ms) SELECT "owners".* FROM "owners" WHERE "owners"."id" = ? LIMIT 1 [["id", 1]]
22195
+ SQL (0.1ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? ORDER BY trees.id DESC [["owner_id", 1]]
22196
+  (0.1ms) SELECT COUNT(DISTINCT count_column) FROM (SELECT "trees"."id" AS count_column FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? LIMIT 15 OFFSET 0) subquery_for_count [["owner_id", 1]]
22197
+ SQL (0.1ms) SELECT "trees"."id" AS t0_r0, "trees"."name" AS t0_r1, "trees"."owner_id" AS t0_r2, "trees"."created_at" AS t0_r3, "trees"."updated_at" AS t0_r4, "owners"."id" AS t1_r0, "owners"."name" AS t1_r1, "owners"."created_at" AS t1_r2, "owners"."updated_at" AS t1_r3 FROM "trees" LEFT OUTER JOIN "owners" ON "owners"."id" = "trees"."owner_id" WHERE "trees"."owner_id" = ? ORDER BY trees.id DESC LIMIT 1 OFFSET 0 [["owner_id", 1]]
22198
+  (0.1ms) rollback transaction
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: forest_liana
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.1
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sandro Munda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-29 00:00:00.000000000 Z
11
+ date: 2018-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -183,6 +183,7 @@ files:
183
183
  - app/services/forest_liana/intercom_conversation_getter.rb
184
184
  - app/services/forest_liana/intercom_conversations_getter.rb
185
185
  - app/services/forest_liana/line_stat_getter.rb
186
+ - app/services/forest_liana/live_query_checker.rb
186
187
  - app/services/forest_liana/operator_date_interval_parser.rb
187
188
  - app/services/forest_liana/operator_value_parser.rb
188
189
  - app/services/forest_liana/pie_stat_getter.rb