oracle-sql-parser 0.9.2 → 1.1.0
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 +5 -5
- data/CHANGELOG.md +213 -0
- data/LICENSE.txt +21 -0
- data/README.md +66 -3
- data/Rakefile +62 -10
- data/lib/oracle-sql-parser/ast/fetch.rb +12 -0
- data/lib/oracle-sql-parser/ast/number_literal.rb +1 -1
- data/lib/oracle-sql-parser/ast/offset.rb +11 -0
- data/lib/oracle-sql-parser/ast/row_limiting_clause.rb +10 -0
- data/lib/oracle-sql-parser/ast/subquery.rb +8 -4
- data/lib/oracle-sql-parser/ast.rb +3 -0
- data/lib/oracle-sql-parser/grammar/condition/between.rb +5 -3
- data/lib/oracle-sql-parser/grammar/condition/comparison.rb +5 -3
- data/lib/oracle-sql-parser/grammar/condition/comparison.treetop +1 -0
- data/lib/oracle-sql-parser/grammar/condition/compound.rb +5 -3
- data/lib/oracle-sql-parser/grammar/condition/exists.rb +5 -3
- data/lib/oracle-sql-parser/grammar/condition/floating_point.rb +5 -3
- data/lib/oracle-sql-parser/grammar/condition/in.rb +5 -3
- data/lib/oracle-sql-parser/grammar/condition/is_of_type.rb +5 -3
- data/lib/oracle-sql-parser/grammar/condition/multiset.rb +5 -3
- data/lib/oracle-sql-parser/grammar/condition/null.rb +5 -3
- data/lib/oracle-sql-parser/grammar/condition/pattern_matching.rb +5 -3
- data/lib/oracle-sql-parser/grammar/condition.rb +5 -3
- data/lib/oracle-sql-parser/grammar/delete.rb +5 -3
- data/lib/oracle-sql-parser/grammar/expression/case.rb +5 -3
- data/lib/oracle-sql-parser/grammar/expression/compound.rb +5 -3
- data/lib/oracle-sql-parser/grammar/expression/cursor.rb +5 -3
- data/lib/oracle-sql-parser/grammar/expression/datetime.rb +5 -3
- data/lib/oracle-sql-parser/grammar/expression/function.rb +5 -3
- data/lib/oracle-sql-parser/grammar/expression/interval.rb +5 -3
- data/lib/oracle-sql-parser/grammar/expression/simple.rb +5 -3
- data/lib/oracle-sql-parser/grammar/expression.rb +5 -27
- data/lib/oracle-sql-parser/grammar/expression.treetop +0 -4
- data/lib/oracle-sql-parser/grammar/grammar.rb +5 -29
- data/lib/oracle-sql-parser/grammar/grammar.treetop +0 -8
- data/lib/oracle-sql-parser/grammar/insert.rb +5 -3
- data/lib/oracle-sql-parser/grammar/reserved_word.rb +662 -42
- data/lib/oracle-sql-parser/grammar/reserved_word.treetop +1150 -0
- data/lib/oracle-sql-parser/grammar/reserved_word_generator.rb +7 -1
- data/lib/oracle-sql-parser/grammar/select/for_update.rb +5 -3
- data/lib/oracle-sql-parser/grammar/select/group.rb +5 -3
- data/lib/oracle-sql-parser/grammar/select/join.rb +5 -3
- data/lib/oracle-sql-parser/grammar/select/order.rb +5 -3
- data/lib/oracle-sql-parser/grammar/select/query_block.rb +5 -3
- data/lib/oracle-sql-parser/grammar/select/row_limit.rb +407 -0
- data/lib/oracle-sql-parser/grammar/select/row_limit.treetop +49 -0
- data/lib/oracle-sql-parser/grammar/select/union.rb +5 -3
- data/lib/oracle-sql-parser/grammar/select.rb +46 -5
- data/lib/oracle-sql-parser/grammar/select.treetop +4 -1
- data/lib/oracle-sql-parser/grammar/update.rb +5 -3
- data/lib/oracle-sql-parser/grammar.rb +1 -0
- data/lib/oracle-sql-parser/version.rb +1 -1
- data/oracle-sql-parser.gemspec +14 -12
- metadata +40 -53
- data/.gitignore +0 -24
- data/Gemfile +0 -4
- data/HISTORY.md +0 -70
|
@@ -123,10 +123,12 @@ module OracleSqlParser::Grammar::Condition
|
|
|
123
123
|
r0
|
|
124
124
|
end
|
|
125
125
|
|
|
126
|
-
end
|
|
127
126
|
|
|
128
|
-
|
|
129
|
-
|
|
127
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
128
|
+
include Null
|
|
129
|
+
end
|
|
130
130
|
end
|
|
131
131
|
|
|
132
|
+
(remove_const(:NullParser) if const_defined?(:NullParser)) rescue nil; NullParser = Null::Parser
|
|
133
|
+
|
|
132
134
|
end
|
|
@@ -373,10 +373,12 @@ module OracleSqlParser::Grammar::Condition
|
|
|
373
373
|
r0
|
|
374
374
|
end
|
|
375
375
|
|
|
376
|
-
end
|
|
377
376
|
|
|
378
|
-
|
|
379
|
-
|
|
377
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
378
|
+
include PatternMatching
|
|
379
|
+
end
|
|
380
380
|
end
|
|
381
381
|
|
|
382
|
+
(remove_const(:PatternMatchingParser) if const_defined?(:PatternMatchingParser)) rescue nil; PatternMatchingParser = PatternMatching::Parser
|
|
383
|
+
|
|
382
384
|
end
|
|
@@ -478,10 +478,12 @@ module OracleSqlParser::Grammar
|
|
|
478
478
|
r0
|
|
479
479
|
end
|
|
480
480
|
|
|
481
|
-
end
|
|
482
481
|
|
|
483
|
-
|
|
484
|
-
|
|
482
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
483
|
+
include Condition
|
|
484
|
+
end
|
|
485
485
|
end
|
|
486
486
|
|
|
487
|
+
(remove_const(:ConditionParser) if const_defined?(:ConditionParser)) rescue nil; ConditionParser = Condition::Parser
|
|
488
|
+
|
|
487
489
|
end
|
|
@@ -485,10 +485,12 @@ module OracleSqlParser::Grammar
|
|
|
485
485
|
r0
|
|
486
486
|
end
|
|
487
487
|
|
|
488
|
-
end
|
|
489
488
|
|
|
490
|
-
|
|
491
|
-
|
|
489
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
490
|
+
include Delete
|
|
491
|
+
end
|
|
492
492
|
end
|
|
493
493
|
|
|
494
|
+
(remove_const(:DeleteParser) if const_defined?(:DeleteParser)) rescue nil; DeleteParser = Delete::Parser
|
|
495
|
+
|
|
494
496
|
end
|
|
@@ -506,10 +506,12 @@ module OracleSqlParser::Grammar::Expression
|
|
|
506
506
|
r0
|
|
507
507
|
end
|
|
508
508
|
|
|
509
|
-
end
|
|
510
509
|
|
|
511
|
-
|
|
512
|
-
|
|
510
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
511
|
+
include Case
|
|
512
|
+
end
|
|
513
513
|
end
|
|
514
514
|
|
|
515
|
+
(remove_const(:CaseParser) if const_defined?(:CaseParser)) rescue nil; CaseParser = Case::Parser
|
|
516
|
+
|
|
515
517
|
end
|
|
@@ -322,10 +322,12 @@ module OracleSqlParser::Grammar::Expression
|
|
|
322
322
|
r0
|
|
323
323
|
end
|
|
324
324
|
|
|
325
|
-
end
|
|
326
325
|
|
|
327
|
-
|
|
328
|
-
|
|
326
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
327
|
+
include Compound
|
|
328
|
+
end
|
|
329
329
|
end
|
|
330
330
|
|
|
331
|
+
(remove_const(:CompoundParser) if const_defined?(:CompoundParser)) rescue nil; CompoundParser = Compound::Parser
|
|
332
|
+
|
|
331
333
|
end
|
|
@@ -108,11 +108,13 @@ module OracleSqlParser::Grammar::Expression
|
|
|
108
108
|
r0
|
|
109
109
|
end
|
|
110
110
|
|
|
111
|
-
end
|
|
112
111
|
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
113
|
+
include Cursor
|
|
114
|
+
end
|
|
115
115
|
end
|
|
116
116
|
|
|
117
|
+
(remove_const(:CursorParser) if const_defined?(:CursorParser)) rescue nil; CursorParser = Cursor::Parser
|
|
118
|
+
|
|
117
119
|
end
|
|
118
120
|
|
|
@@ -253,10 +253,12 @@ module OracleSqlParser::Grammar::Expression
|
|
|
253
253
|
r0
|
|
254
254
|
end
|
|
255
255
|
|
|
256
|
-
end
|
|
257
256
|
|
|
258
|
-
|
|
259
|
-
|
|
257
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
258
|
+
include Datetime
|
|
259
|
+
end
|
|
260
260
|
end
|
|
261
261
|
|
|
262
|
+
(remove_const(:DatetimeParser) if const_defined?(:DatetimeParser)) rescue nil; DatetimeParser = Datetime::Parser
|
|
263
|
+
|
|
262
264
|
end
|
|
@@ -318,12 +318,14 @@ module OracleSqlParser::Grammar::Expression
|
|
|
318
318
|
r0
|
|
319
319
|
end
|
|
320
320
|
|
|
321
|
-
end
|
|
322
321
|
|
|
323
|
-
|
|
324
|
-
|
|
322
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
323
|
+
include Function
|
|
324
|
+
end
|
|
325
325
|
end
|
|
326
326
|
|
|
327
|
+
(remove_const(:FunctionParser) if const_defined?(:FunctionParser)) rescue nil; FunctionParser = Function::Parser
|
|
328
|
+
|
|
327
329
|
end
|
|
328
330
|
|
|
329
331
|
|
|
@@ -563,10 +563,12 @@ module OracleSqlParser::Grammar::Expression
|
|
|
563
563
|
r0
|
|
564
564
|
end
|
|
565
565
|
|
|
566
|
-
end
|
|
567
566
|
|
|
568
|
-
|
|
569
|
-
|
|
567
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
568
|
+
include Interval
|
|
569
|
+
end
|
|
570
570
|
end
|
|
571
571
|
|
|
572
|
+
(remove_const(:IntervalParser) if const_defined?(:IntervalParser)) rescue nil; IntervalParser = Interval::Parser
|
|
573
|
+
|
|
572
574
|
end
|
|
@@ -280,10 +280,12 @@ module OracleSqlParser::Grammar::Expression
|
|
|
280
280
|
r0
|
|
281
281
|
end
|
|
282
282
|
|
|
283
|
-
end
|
|
284
283
|
|
|
285
|
-
|
|
286
|
-
|
|
284
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
285
|
+
include Simple
|
|
286
|
+
end
|
|
287
287
|
end
|
|
288
288
|
|
|
289
|
+
(remove_const(:SimpleParser) if const_defined?(:SimpleParser)) rescue nil; SimpleParser = Simple::Parser
|
|
290
|
+
|
|
289
291
|
end
|
|
@@ -419,30 +419,6 @@ module OracleSqlParser::Grammar
|
|
|
419
419
|
r0
|
|
420
420
|
end
|
|
421
421
|
|
|
422
|
-
def _nt_object_access_expression
|
|
423
|
-
start_index = index
|
|
424
|
-
if node_cache[:object_access_expression].has_key?(index)
|
|
425
|
-
cached = node_cache[:object_access_expression][index]
|
|
426
|
-
if cached
|
|
427
|
-
node_cache[:object_access_expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
|
428
|
-
@index = cached.interval.end
|
|
429
|
-
end
|
|
430
|
-
return cached
|
|
431
|
-
end
|
|
432
|
-
|
|
433
|
-
if (match_len = has_terminal?('object_access_expression', false, index))
|
|
434
|
-
r0 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
|
435
|
-
@index += match_len
|
|
436
|
-
else
|
|
437
|
-
terminal_parse_failure('\'object_access_expression\'')
|
|
438
|
-
r0 = nil
|
|
439
|
-
end
|
|
440
|
-
|
|
441
|
-
node_cache[:object_access_expression][start_index] = r0
|
|
442
|
-
|
|
443
|
-
r0
|
|
444
|
-
end
|
|
445
|
-
|
|
446
422
|
module ExpressionList0
|
|
447
423
|
def e
|
|
448
424
|
elements[1]
|
|
@@ -666,10 +642,12 @@ module OracleSqlParser::Grammar
|
|
|
666
642
|
r0
|
|
667
643
|
end
|
|
668
644
|
|
|
669
|
-
end
|
|
670
645
|
|
|
671
|
-
|
|
672
|
-
|
|
646
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
647
|
+
include Expression
|
|
648
|
+
end
|
|
673
649
|
end
|
|
674
650
|
|
|
651
|
+
(remove_const(:ExpressionParser) if const_defined?(:ExpressionParser)) rescue nil; ExpressionParser = Expression::Parser
|
|
652
|
+
|
|
675
653
|
end
|
|
@@ -78,10 +78,6 @@ module OracleSqlParser::Grammar
|
|
|
78
78
|
'json_object_access_expression' # not implemented
|
|
79
79
|
end
|
|
80
80
|
|
|
81
|
-
rule object_access_expression
|
|
82
|
-
'object_access_expression' # not implemented
|
|
83
|
-
end
|
|
84
|
-
|
|
85
81
|
rule expression_list # from grouping_expression_list
|
|
86
82
|
(
|
|
87
83
|
'(' e:exprs ')' /
|
|
@@ -1119,32 +1119,6 @@ module OracleSqlParser::Grammar
|
|
|
1119
1119
|
r0
|
|
1120
1120
|
end
|
|
1121
1121
|
|
|
1122
|
-
module TAlias0
|
|
1123
|
-
def ast
|
|
1124
|
-
super
|
|
1125
|
-
end
|
|
1126
|
-
end
|
|
1127
|
-
|
|
1128
|
-
def _nt_t_alias
|
|
1129
|
-
start_index = index
|
|
1130
|
-
if node_cache[:t_alias].has_key?(index)
|
|
1131
|
-
cached = node_cache[:t_alias][index]
|
|
1132
|
-
if cached
|
|
1133
|
-
node_cache[:t_alias][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
|
1134
|
-
@index = cached.interval.end
|
|
1135
|
-
end
|
|
1136
|
-
return cached
|
|
1137
|
-
end
|
|
1138
|
-
|
|
1139
|
-
r0 = _nt_ident
|
|
1140
|
-
r0.extend(TAlias0)
|
|
1141
|
-
r0.extend(TAlias0)
|
|
1142
|
-
|
|
1143
|
-
node_cache[:t_alias][start_index] = r0
|
|
1144
|
-
|
|
1145
|
-
r0
|
|
1146
|
-
end
|
|
1147
|
-
|
|
1148
1122
|
module CurrentOf0
|
|
1149
1123
|
def current_of_keyword
|
|
1150
1124
|
elements[0]
|
|
@@ -1398,10 +1372,12 @@ module OracleSqlParser::Grammar
|
|
|
1398
1372
|
r0
|
|
1399
1373
|
end
|
|
1400
1374
|
|
|
1401
|
-
end
|
|
1402
1375
|
|
|
1403
|
-
|
|
1404
|
-
|
|
1376
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
1377
|
+
include Grammar
|
|
1378
|
+
end
|
|
1405
1379
|
end
|
|
1406
1380
|
|
|
1381
|
+
(remove_const(:GrammarParser) if const_defined?(:GrammarParser)) rescue nil; GrammarParser = Grammar::Parser
|
|
1382
|
+
|
|
1407
1383
|
end
|
|
@@ -782,10 +782,12 @@ module OracleSqlParser::Grammar
|
|
|
782
782
|
r0
|
|
783
783
|
end
|
|
784
784
|
|
|
785
|
-
end
|
|
786
785
|
|
|
787
|
-
|
|
788
|
-
|
|
786
|
+
class Parser < Treetop::Runtime::CompiledParser
|
|
787
|
+
include Insert
|
|
788
|
+
end
|
|
789
789
|
end
|
|
790
790
|
|
|
791
|
+
(remove_const(:InsertParser) if const_defined?(:InsertParser)) rescue nil; InsertParser = Insert::Parser
|
|
792
|
+
|
|
791
793
|
end
|