sparkql 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
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