sparkql 1.3.5 → 1.3.6
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 +4 -4
- data/CHANGELOG.md +3 -0
- data/VERSION +1 -1
- data/lib/sparkql/parser_tools.rb +32 -8
- data/test/unit/parser_test.rb +12 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6c51d91b09c229564b83503e11d3ca453c91f5c280307effd1120d6a33b74010
|
|
4
|
+
data.tar.gz: ea90a995aa3dbd06ae7f187437c24abb81590ff396e837ec45e531ea25408f69
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c10a6629cc9606cdb49de2f60c64e6d0a38879c7abf4118e91fb23070eea06efa81b951a4f76daf185f5904efcbaa1b2ef4edb09a6124f24833e77865ecdd295
|
|
7
|
+
data.tar.gz: 9e073aa1c7963578f2ecf8e0a65230e7210c329a365a57e6b3fd7d4d0c7aa60e281b186e3c507ffe8f59a91fbefd16dbc9e99a9d97e8b603f4da6b1bb859c0e4
|
data/CHANGELOG.md
CHANGED
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.3.
|
|
1
|
+
1.3.6
|
data/lib/sparkql/parser_tools.rb
CHANGED
|
@@ -171,6 +171,16 @@ module Sparkql::ParserTools
|
|
|
171
171
|
end
|
|
172
172
|
|
|
173
173
|
def tokenize_multiple(lit1, lit2)
|
|
174
|
+
if lit1.nil? || lit2.nil?
|
|
175
|
+
return nil if errors?
|
|
176
|
+
|
|
177
|
+
tokenizer_error(token: @lexer.last_field,
|
|
178
|
+
message: 'Invalid value in field list.',
|
|
179
|
+
status: :fatal,
|
|
180
|
+
syntax: true)
|
|
181
|
+
return nil
|
|
182
|
+
end
|
|
183
|
+
|
|
174
184
|
final_type = lit1[:type]
|
|
175
185
|
if lit1[:type] != lit2[:type]
|
|
176
186
|
final_type = coercible_types(lit1[:type], lit2[:type])
|
|
@@ -224,15 +234,17 @@ module Sparkql::ParserTools
|
|
|
224
234
|
resolver = function_resolver(name, args)
|
|
225
235
|
resolver.validate
|
|
226
236
|
if resolver.errors?
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
status: :fatal,
|
|
230
|
-
syntax: true)
|
|
231
|
-
nil
|
|
232
|
-
else
|
|
233
|
-
result = resolver.call
|
|
234
|
-
result.nil? ? result : result.merge(condition: "#{name}(#{condition_list.join(',')})")
|
|
237
|
+
report_function_resolver_errors(resolver)
|
|
238
|
+
return nil
|
|
235
239
|
end
|
|
240
|
+
|
|
241
|
+
result = resolver.call
|
|
242
|
+
if result.nil?
|
|
243
|
+
report_function_resolver_errors(resolver) if resolver.errors?
|
|
244
|
+
return nil
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
result.merge(condition: "#{name}(#{condition_list.join(',')})")
|
|
236
248
|
end
|
|
237
249
|
|
|
238
250
|
def tokenize_arithmetic(lhs, operator, rhs)
|
|
@@ -448,4 +460,16 @@ module Sparkql::ParserTools
|
|
|
448
460
|
def offset
|
|
449
461
|
@offset ||= current_timestamp.strftime('%:z')
|
|
450
462
|
end
|
|
463
|
+
|
|
464
|
+
private
|
|
465
|
+
|
|
466
|
+
def report_function_resolver_errors(resolver)
|
|
467
|
+
resolver.errors.each do |error|
|
|
468
|
+
tokenizer_error(token: error.token || @lexer.last_field,
|
|
469
|
+
message: error.message,
|
|
470
|
+
status: error.status,
|
|
471
|
+
syntax: error.syntax?,
|
|
472
|
+
constraint: error.constraint?)
|
|
473
|
+
end
|
|
474
|
+
end
|
|
451
475
|
end
|
data/test/unit/parser_test.rb
CHANGED
|
@@ -1232,6 +1232,18 @@ class ParserTest < Test::Unit::TestCase
|
|
|
1232
1232
|
assert_equal 0, expressions.last[:block_group]
|
|
1233
1233
|
end
|
|
1234
1234
|
|
|
1235
|
+
test 'oversized days() in Bt range returns parser error instead of raising' do
|
|
1236
|
+
[
|
|
1237
|
+
'OriginalEntryTimestamp Bt days(0),days(365001)',
|
|
1238
|
+
'OpenHouses Bt days(0),days(9223372036854775807)'
|
|
1239
|
+
].each do |filter|
|
|
1240
|
+
@parser = Parser.new
|
|
1241
|
+
assert_nothing_raised { @parser.parse(filter) }
|
|
1242
|
+
assert @parser.fatal_errors?, "Expected fatal error for #{filter}"
|
|
1243
|
+
assert_match(/max offset/i, @parser.errors.first.message)
|
|
1244
|
+
end
|
|
1245
|
+
end
|
|
1246
|
+
|
|
1235
1247
|
private
|
|
1236
1248
|
|
|
1237
1249
|
def parser_errors(filter)
|
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.3.
|
|
4
|
+
version: 1.3.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Wade McEwen
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-06-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: georuby
|