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 +8 -8
- data/CHANGELOG.md +4 -0
- data/VERSION +1 -1
- data/lib/sparkql/parser.rb +44 -44
- data/lib/sparkql/parser_compatibility.rb +10 -1
- data/test/unit/parser_compatability_test.rb +6 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MGYwODJjZmY5MTNkOWFjYjRlZTBkOGZjNjhmNGI1ZjU5MzhjNGM1OA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTViYjY5OWVjYzJkYzYxMmQzZTQwZjg1MWFmN2MzNDM4ZmI3MjlmNw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZDc5MjYxMmZiOTY5ZTIxNDg4YmFkYTUwNDRiNGE4YTMwNzgxYTBmNGMyNDUx
|
10
|
+
ZWViZmNkNTI3ODk1ZWRkOWVkZDAyMDk2YWE5MDMxZWQ2MzNlNzI0OTE5ZDEy
|
11
|
+
ZjUyZGQ1ZTIxNzVmODM0OGVmNGQzOWU1MzEzMGZhZWFlMWIzNDU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OWFmNWE1ZTYwZjY5ZTQxMmZhOTFiMjQ5YjM0YjAwMGUxNjE5YTQ2Y2Q5ODRi
|
14
|
+
YmQ1NTg5OGQ3M2UzOTJiOTNjNWQzMDhjNWQyYzJlM2I1NmMyMWVlMDU4N2Fl
|
15
|
+
MTQxODY1ODc3ZmQzOGJmY2FhMGQ3MTMwYjEzMGJjZmJkOWJiMDk=
|
data/CHANGELOG.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.1
|
data/lib/sparkql/parser.rb
CHANGED
@@ -16,48 +16,48 @@ module Sparkql
|
|
16
16
|
##### State transition tables begin ###
|
17
17
|
|
18
18
|
racc_action_table = [
|
19
|
-
36, 14,
|
20
|
-
|
21
|
-
|
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,
|
24
|
-
33, 34, 37, 38, 39, 40, 41, 36,
|
25
|
-
|
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,
|
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,
|
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
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
36, 36,
|
48
|
-
|
49
|
-
|
50
|
-
16, 16, 16,
|
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
|
-
|
54
|
-
nil, nil, nil,
|
55
|
-
nil,
|
56
|
-
|
57
|
-
nil, nil, nil,
|
58
|
-
nil, nil,
|
59
|
-
nil,
|
60
|
-
nil, nil, nil, nil, nil, 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,
|
74
|
-
|
75
|
-
59, 60, 77, 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
|
-
|
78
|
-
|
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
|
-
|
83
|
-
|
84
|
-
18, 18, 19, 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
|
-
|
87
|
-
|
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,
|
92
|
-
-
|
93
|
-
-
|
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.
|
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
|
11
|
+
date: 2018-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: georuby
|