sparkql 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YmEwMzUwNDNlYTljMmQ4YTcwMWI5Mjc5YmZkYjc5NzBlY2QyMGM3Ng==
4
+ MGYwODJjZmY5MTNkOWFjYjRlZTBkOGZjNjhmNGI1ZjU5MzhjNGM1OA==
5
5
  data.tar.gz: !binary |-
6
- OTk3N2I0ZGQwYjc0ZmIxMzcwZTFkZjcwOGMxNzVlY2VkODMxN2QxMg==
6
+ YTViYjY5OWVjYzJkYzYxMmQzZTQwZjg1MWFmN2MzNDM4ZmI3MjlmNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZDVkMzg2MWNhNDUxMWU0NzVjZjhmNmE2ZmQ3YTVjMWVmY2U0MmRhNGFlZWIw
10
- YTdlOTZkNTliY2E5ZWMzYTViMTNkMGVmYWYwNzI5ZGQ1YzJjN2IxZDc2Njk5
11
- NGQ0OGQ2ODk5ZDRlYWZmMGJmYjEzYzBhODAxOTgwYjRjZGViMTA=
9
+ ZDc5MjYxMmZiOTY5ZTIxNDg4YmFkYTUwNDRiNGE4YTMwNzgxYTBmNGMyNDUx
10
+ ZWViZmNkNTI3ODk1ZWRkOWVkZDAyMDk2YWE5MDMxZWQ2MzNlNzI0OTE5ZDEy
11
+ ZjUyZGQ1ZTIxNzVmODM0OGVmNGQzOWU1MzEzMGZhZWFlMWIzNDU=
12
12
  data.tar.gz: !binary |-
13
- M2NjMjYxNmMyNzEyNjZjMTc5Yjc0ZjFkZjlhMjk1ZGNjYzdhMzA5YzZjOWJj
14
- YTU2NGQ0N2FkNzIzM2E5ZTI1ZmY4ZDYxYTA0YWIxM2I5Mjg5NWY1ZGY1OWVk
15
- YzFmY2VlNDE0ZjNmNTBkOTY5MjIwOWZjY2YzZWFlNmU0MDllZTI=
13
+ OWFmNWE1ZTYwZjY5ZTQxMmZhOTFiMjQ5YjM0YjAwMGUxNjE5YTQ2Y2Q5ODRi
14
+ YmQ1NTg5OGQ3M2UzOTJiOTNjNWQzMDhjNWQyYzJlM2I1NmMyMWVlMDU4N2Fl
15
+ MTQxODY1ODc3ZmQzOGJmY2FhMGQ3MTMwYjEzMGJjZmJkOWJiMDk=
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ v1.2.1, 2018-10-09
2
+ -------------------
3
+ * [BUGFIX] Check deepest function when type checking field arguments.
4
+
1
5
  v1.2.0, 2018-09-24
2
6
  -------------------
3
7
  * [IMPROVEMENT] Support Nested field functions via `field_manipulations` attribute.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0
1
+ 1.2.1
@@ -16,48 +16,48 @@ module Sparkql
16
16
  ##### State transition tables begin ###
17
17
 
18
18
  racc_action_table = [
19
- 36, 14, 72, 44, 45, 35, 46, 47, 48, 14,
20
- 58, 32, 33, 34, 37, 38, 39, 40, 41, 36,
21
- 22, 62, 18, 19, 35, 63, 10, 11, 14, 23,
19
+ 36, 14, 15, 44, 45, 35, 46, 47, 48, 14,
20
+ 22, 32, 33, 34, 37, 38, 39, 40, 41, 36,
21
+ 17, 16, 23, 50, 35, 51, 10, 11, 14, -35,
22
22
  32, 33, 34, 37, 38, 39, 40, 41, 36, 17,
23
- 16, 61, 50, 35, 51, 10, 11, 14, 15, 32,
24
- 33, 34, 37, 38, 39, 40, 41, 36, 17, 16,
25
- 75, 57, 35, 66, 76, -35, 14, nil, 32, 33,
23
+ 16, 62, 75, 35, 66, 63, 76, 14, 57, 32,
24
+ 33, 34, 37, 38, 39, 40, 41, 36, 18, 19,
25
+ 58, 61, 35, 72, 10, 11, 14, nil, 32, 33,
26
26
  34, 37, 38, 39, 40, 41, 36, 14, nil, 44,
27
27
  45, 35, 46, 47, 48, 14, nil, 32, 33, 34,
28
28
  37, 38, 39, 40, 41, 36, nil, nil, 36, nil,
29
- 35, nil, nil, 35, 14, nil, 32, 33, 34, 32,
29
+ 35, nil, nil, 35, nil, nil, 32, 33, 34, 32,
30
30
  33, 34, 36, nil, 8, nil, 9, 35, 10, 11,
31
- 14, nil, nil, 32, 33, 34, 8, nil, 9, nil,
31
+ 14, 14, nil, 32, 33, 34, 8, nil, 9, nil,
32
32
  10, 11, 14, 9, nil, 10, 11, 14, 9, nil,
33
33
  10, 11, 14, 9, nil, 10, 11, 14 ]
34
34
 
35
35
  racc_action_check = [
36
- 76, 61, 59, 61, 61, 76, 61, 61, 61, 76,
37
- 30, 76, 76, 76, 76, 76, 76, 76, 76, 63,
38
- 13, 52, 6, 6, 63, 52, 63, 63, 63, 15,
39
- 63, 63, 63, 63, 63, 63, 63, 63, 22, 21,
40
- 21, 43, 21, 22, 22, 22, 22, 22, 1, 22,
41
- 22, 22, 22, 22, 22, 22, 22, 58, 2, 2,
42
- 67, 29, 58, 58, 67, 28, 58, nil, 58, 58,
43
- 58, 58, 58, 58, 58, 58, 18, 19, nil, 19,
44
- 19, 18, 19, 19, 19, 18, nil, 18, 18, 18,
45
- 18, 18, 18, 18, 18, 57, nil, nil, 36, nil,
46
- 57, nil, nil, 36, 57, nil, 57, 57, 57, 36,
47
- 36, 36, 35, nil, 9, nil, 9, 35, 9, 9,
48
- 9, nil, nil, 35, 35, 35, 0, nil, 0, nil,
49
- 0, 0, 0, 17, nil, 17, 17, 17, 16, nil,
50
- 16, 16, 16, 8, nil, 8, 8, 8 ]
36
+ 18, 19, 1, 19, 19, 18, 19, 19, 19, 18,
37
+ 13, 18, 18, 18, 18, 18, 18, 18, 18, 22,
38
+ 21, 21, 15, 21, 22, 22, 22, 22, 22, 28,
39
+ 22, 22, 22, 22, 22, 22, 22, 22, 58, 2,
40
+ 2, 52, 67, 58, 58, 52, 67, 58, 29, 58,
41
+ 58, 58, 58, 58, 58, 58, 58, 63, 6, 6,
42
+ 30, 43, 63, 59, 63, 63, 63, nil, 63, 63,
43
+ 63, 63, 63, 63, 63, 63, 76, 61, nil, 61,
44
+ 61, 76, 61, 61, 61, 76, nil, 76, 76, 76,
45
+ 76, 76, 76, 76, 76, 35, nil, nil, 36, nil,
46
+ 35, nil, nil, 36, nil, nil, 35, 35, 35, 36,
47
+ 36, 36, 57, nil, 0, nil, 0, 57, 0, 0,
48
+ 0, 57, nil, 57, 57, 57, 9, nil, 9, nil,
49
+ 9, 9, 9, 8, nil, 8, 8, 8, 16, nil,
50
+ 16, 16, 16, 17, nil, 17, 17, 17 ]
51
51
 
52
52
  racc_action_pointer = [
53
- 121, 48, 53, nil, nil, nil, 19, nil, 136, 109,
54
- nil, nil, nil, 13, nil, 29, 131, 126, 74, 66,
55
- nil, 34, 36, nil, nil, nil, nil, nil, 53, 49,
56
- 3, nil, nil, nil, nil, 110, 96, nil, nil, nil,
57
- nil, nil, nil, 29, nil, nil, nil, nil, nil, nil,
58
- nil, nil, 13, nil, nil, nil, nil, 93, 55, -6,
59
- nil, -10, nil, 17, nil, nil, nil, 52, nil, nil,
60
- nil, nil, nil, nil, nil, nil, -2, nil ]
53
+ 109, 2, 34, nil, nil, nil, 55, nil, 126, 121,
54
+ nil, nil, nil, 3, nil, 22, 131, 136, -2, -10,
55
+ nil, 15, 17, nil, nil, nil, nil, nil, 17, 36,
56
+ 53, nil, nil, nil, nil, 93, 96, nil, nil, nil,
57
+ nil, nil, nil, 49, nil, nil, nil, nil, nil, nil,
58
+ nil, nil, 33, nil, nil, nil, nil, 110, 36, 55,
59
+ nil, 66, nil, 55, nil, nil, nil, 34, nil, nil,
60
+ nil, nil, nil, nil, nil, nil, 74, nil ]
61
61
 
62
62
  racc_action_default = [
63
63
  -2, -55, -1, -3, -4, -5, -55, -8, -55, -55,
@@ -70,27 +70,27 @@ racc_action_default = [
70
70
  -32, -33, -42, -38, -25, -22, -55, -30 ]
71
71
 
72
72
  racc_goto_table = [
73
- 30, 27, 43, 31, 68, 56, 53, 49, 2, 28,
74
- 20, 52, 67, 29, 42, 26, 1, 21, 24, 25,
75
- 59, 60, 77, nil, nil, nil, nil, nil, nil, nil,
73
+ 27, 30, 2, 31, 43, 68, 49, 20, 56, 53,
74
+ 1, 21, 26, 42, 28, 24, 25, 29, 52, 67,
75
+ 59, 60, nil, 77, nil, nil, nil, nil, nil, nil,
76
76
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
77
- 30, 69, 64, 70, 73, 65, 56, 74, nil, 49,
78
- nil, nil, nil, nil, nil, nil, nil, nil, 30, 69,
77
+ 69, 30, 64, 70, 65, nil, 73, nil, 49, 56,
78
+ 74, nil, nil, nil, nil, nil, nil, nil, 69, 30,
79
79
  nil, 70 ]
80
80
 
81
81
  racc_goto_check = [
82
- 14, 11, 20, 18, 19, 6, 17, 10, 2, 12,
83
- 3, 15, 16, 13, 8, 7, 1, 2, 3, 3,
84
- 18, 18, 19, nil, nil, nil, nil, nil, nil, nil,
82
+ 11, 14, 2, 18, 20, 19, 10, 3, 6, 17,
83
+ 1, 2, 7, 8, 12, 3, 3, 13, 15, 16,
84
+ 18, 18, nil, 19, nil, nil, nil, nil, nil, nil,
85
85
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
86
- 14, 11, 18, 18, 20, 10, 6, 17, nil, 10,
87
- nil, nil, nil, nil, nil, nil, nil, nil, 14, 11,
86
+ 11, 14, 18, 18, 10, nil, 20, nil, 10, 6,
87
+ 17, nil, nil, nil, nil, nil, nil, nil, 11, 14,
88
88
  nil, 18 ]
89
89
 
90
90
  racc_goto_pointer = [
91
- nil, 16, 8, 2, nil, nil, -17, -3, -5, nil,
92
- -12, -17, -9, -5, -18, -11, -46, -16, -15, -54,
93
- -17 ]
91
+ nil, 10, 2, -1, nil, nil, -14, -6, -6, nil,
92
+ -13, -18, -4, -1, -17, -4, -39, -13, -15, -53,
93
+ -15 ]
94
94
 
95
95
  racc_goto_default = [
96
96
  nil, nil, nil, 3, 4, 5, 6, nil, nil, 7,
@@ -260,12 +260,21 @@ module Sparkql::ParserCompatibility
260
260
  def check_function_type?(expression, expected)
261
261
  return false unless expression.key?(:field_manipulations) && expression[:field_manipulations][:return_type] == expression[:type]
262
262
  # Lookup the function arguments
263
- function = Sparkql::FunctionResolver::SUPPORTED_FUNCTIONS[expression[:field_manipulations][:function_name].to_sym]
263
+ function = Sparkql::FunctionResolver::SUPPORTED_FUNCTIONS[deepest_function(expression[:field_manipulations])[:function_name].to_sym]
264
264
  return false if function.nil?
265
265
 
266
266
  Array(function[:args].first).include?(expected)
267
267
  end
268
268
 
269
+
270
+ def deepest_function(function)
271
+ if function[:args].first[:type] == :function
272
+ deepest_function(function[:args].first)
273
+ else
274
+ function
275
+ end
276
+ end
277
+
269
278
  # Builds the correct operator based on the type and the value.
270
279
  # default should be the operator provided in the actual filter string
271
280
  def get_operator(expression, default )
@@ -132,7 +132,6 @@ class ParserCompatabilityTest < Test::Unit::TestCase
132
132
  :type => :boolean,
133
133
  :operator => "Eq"
134
134
  }]
135
-
136
135
  end
137
136
 
138
137
  def compare_expression_to_tokens( expression, tokens )
@@ -560,5 +559,10 @@ class ParserCompatabilityTest < Test::Unit::TestCase
560
559
  parser.escape_value(expression).map { |i| i.strftime(Sparkql::FunctionResolver::STRFTIME_DATE_FORMAT)}
561
560
  end
562
561
 
563
-
562
+ test "nested function with altering types" do
563
+ parser = Parser.new
564
+ expression = parser.tokenize("cast(month(OriginalEntryTimestamp), 'character') Eq '3'").first
565
+ assert parser.send(:check_type!, expression, :datetime)
566
+ assert_equal '3', parser.escape_value(expression)
567
+ end
564
568
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sparkql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wade McEwen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-25 00:00:00.000000000 Z
11
+ date: 2018-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: georuby