module OracleSqlParser::Grammar::Update
Public Instance Methods
_nt_returning_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/update.rb, line 753 def _nt_returning_clause start_index = index if node_cache[:returning_clause].has_key?(index) cached = node_cache[:returning_clause][index] if cached node_cache[:returning_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end if (match_len = has_terminal?('returning_clause', false, index)) r0 = instantiate_node(SyntaxNode,input, index...(index + match_len)) @index += match_len else terminal_parse_failure('\'returning_clause\'') r0 = nil end node_cache[:returning_clause][start_index] = r0 r0 end
_nt_search_condition()
click to toggle source
# File lib/oracle-sql-parser/grammar/update.rb, line 735 def _nt_search_condition start_index = index if node_cache[:search_condition].has_key?(index) cached = node_cache[:search_condition][index] if cached node_cache[:search_condition][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end r0 = _nt_logical_condition node_cache[:search_condition][start_index] = r0 r0 end
_nt_update_condition()
click to toggle source
# File lib/oracle-sql-parser/grammar/update.rb, line 675 def _nt_update_condition start_index = index if node_cache[:update_condition].has_key?(index) cached = node_cache[:update_condition][index] if cached node_cache[:update_condition][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0 = index r1 = _nt_update_current_of if r1 r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true r0 = r1 else r2 = _nt_search_condition r2.extend(UpdateCondition0) r2.extend(UpdateCondition0) if r2 r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true r0 = r2 else @index = i0 r0 = nil end end node_cache[:update_condition][start_index] = r0 r0 end
_nt_update_current_of()
click to toggle source
# File lib/oracle-sql-parser/grammar/update.rb, line 715 def _nt_update_current_of start_index = index if node_cache[:update_current_of].has_key?(index) cached = node_cache[:update_current_of][index] if cached node_cache[:update_current_of][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end r0 = _nt_current_of r0.extend(UpdateCurrentOf0) r0.extend(UpdateCurrentOf0) node_cache[:update_current_of][start_index] = r0 r0 end
_nt_update_set_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/update.rb, line 440 def _nt_update_set_clause start_index = index if node_cache[:update_set_clause].has_key?(index) cached = node_cache[:update_set_clause][index] if cached node_cache[:update_set_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_set_keyword s0 << r1 if r1 r2 = _nt_space s0 << r2 if r2 r3 = _nt_update_target_column s0 << r3 if r3 s4, i4 = [], index loop do i5, s5 = index, [] r7 = _nt_space if r7 r6 = r7 else r6 = instantiate_node(SyntaxNode,input, index...index) end s5 << r6 if r6 if (match_len = has_terminal?(',', false, index)) r8 = true @index += match_len else terminal_parse_failure('\',\'') r8 = nil end s5 << r8 if r8 r10 = _nt_space if r10 r9 = r10 else r9 = instantiate_node(SyntaxNode,input, index...index) end s5 << r9 if r9 r11 = _nt_update_target_column s5 << r11 end end end if s5.last r5 = instantiate_node(SyntaxNode,input, i5...index, s5) r5.extend(UpdateSetClause0) else @index = i5 r5 = nil end if r5 s4 << r5 else break end end r4 = instantiate_node(SyntaxNode,input, i4...index, s4) s0 << r4 end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(UpdateSetClause1) r0.extend(UpdateSetClause2) else @index = i0 r0 = nil end node_cache[:update_set_clause][start_index] = r0 r0 end
_nt_update_statement()
click to toggle source
# File lib/oracle-sql-parser/grammar/update.rb, line 41 def _nt_update_statement start_index = index if node_cache[:update_statement].has_key?(index) cached = node_cache[:update_statement][index] if cached node_cache[:update_statement][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_update_target_clause s0 << r1 if r1 r3 = _nt_space if r3 r2 = r3 else r2 = instantiate_node(SyntaxNode,input, index...index) end s0 << r2 if r2 r4 = _nt_update_set_clause s0 << r4 if r4 r6 = _nt_space if r6 r5 = r6 else r5 = instantiate_node(SyntaxNode,input, index...index) end s0 << r5 if r5 r8 = _nt_update_where_clause if r8 r7 = r8 else r7 = instantiate_node(SyntaxNode,input, index...index) end s0 << r7 if r7 r10 = _nt_returning_clause if r10 r9 = r10 else r9 = instantiate_node(SyntaxNode,input, index...index) end s0 << r9 end end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(UpdateStatement0) r0.extend(UpdateStatement1) else @index = i0 r0 = nil end node_cache[:update_statement][start_index] = r0 r0 end
_nt_update_target_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/update.rb, line 129 def _nt_update_target_clause start_index = index if node_cache[:update_target_clause].has_key?(index) cached = node_cache[:update_target_clause][index] if cached node_cache[:update_target_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_update_keyword s0 << r1 if r1 r2 = _nt_space s0 << r2 if r2 r3 = _nt_update_target_table s0 << r3 end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(UpdateTargetClause0) r0.extend(UpdateTargetClause1) else @index = i0 r0 = nil end node_cache[:update_target_clause][start_index] = r0 r0 end
_nt_update_target_column()
click to toggle source
# File lib/oracle-sql-parser/grammar/update.rb, line 550 def _nt_update_target_column start_index = index if node_cache[:update_target_column].has_key?(index) cached = node_cache[:update_target_column][index] if cached node_cache[:update_target_column][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_column_name s0 << r1 if r1 r3 = _nt_space if r3 r2 = r3 else r2 = instantiate_node(SyntaxNode,input, index...index) end s0 << r2 if r2 if (match_len = has_terminal?('=', false, index)) r4 = true @index += match_len else terminal_parse_failure('\'=\'') r4 = nil end s0 << r4 if r4 r6 = _nt_space if r6 r5 = r6 else r5 = instantiate_node(SyntaxNode,input, index...index) end s0 << r5 if r5 r7 = _nt_sql_expression s0 << r7 end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(UpdateTargetColumn0) r0.extend(UpdateTargetColumn1) else @index = i0 r0 = nil end node_cache[:update_target_column][start_index] = r0 r0 end
_nt_update_target_table()
click to toggle source
# File lib/oracle-sql-parser/grammar/update.rb, line 213 def _nt_update_target_table start_index = index if node_cache[:update_target_table].has_key?(index) cached = node_cache[:update_target_table][index] if cached node_cache[:update_target_table][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] i1 = index i2, s2 = index, [] r3 = _nt_table_reference s2 << r3 if s2.last r2 = instantiate_node(SyntaxNode,input, i2...index, s2) r2.extend(UpdateTargetTable0) else @index = i2 r2 = nil end if r2 r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true r1 = r2 else i4, s4 = index, [] if (match_len = has_terminal?('(', false, index)) r5 = true @index += match_len else terminal_parse_failure('\'(\'') r5 = nil end s4 << r5 if r5 r7 = _nt_space if r7 r6 = r7 else r6 = instantiate_node(SyntaxNode,input, index...index) end s4 << r6 if r6 r8 = _nt_subquery s4 << r8 if r8 r10 = _nt_space if r10 r9 = r10 else r9 = instantiate_node(SyntaxNode,input, index...index) end s4 << r9 if r9 if (match_len = has_terminal?(')', false, index)) r11 = true @index += match_len else terminal_parse_failure('\')\'') r11 = nil end s4 << r11 end end end end if s4.last r4 = instantiate_node(SyntaxNode,input, i4...index, s4) r4.extend(UpdateTargetTable1) else @index = i4 r4 = nil end if r4 r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true r1 = r4 else i12, s12 = index, [] r13 = _nt_table_keyword s12 << r13 if r13 r15 = _nt_space if r15 r14 = r15 else r14 = instantiate_node(SyntaxNode,input, index...index) end s12 << r14 if r14 if (match_len = has_terminal?('(', false, index)) r16 = true @index += match_len else terminal_parse_failure('\'(\'') r16 = nil end s12 << r16 if r16 r18 = _nt_space if r18 r17 = r18 else r17 = instantiate_node(SyntaxNode,input, index...index) end s12 << r17 if r17 r19 = _nt_subquery s12 << r19 if r19 r21 = _nt_space if r21 r20 = r21 else r20 = instantiate_node(SyntaxNode,input, index...index) end s12 << r20 if r20 if (match_len = has_terminal?(')', false, index)) r22 = true @index += match_len else terminal_parse_failure('\')\'') r22 = nil end s12 << r22 end end end end end end if s12.last r12 = instantiate_node(SyntaxNode,input, i12...index, s12) r12.extend(UpdateTargetTable2) else @index = i12 r12 = nil end if r12 r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true r1 = r12 else @index = i1 r1 = nil end end end s0 << r1 if r1 i24, s24 = index, [] r26 = _nt_space if r26 r25 = r26 else r25 = instantiate_node(SyntaxNode,input, index...index) end s24 << r25 if r25 r27 = _nt_t_alias s24 << r27 end if s24.last r24 = instantiate_node(SyntaxNode,input, i24...index, s24) r24.extend(UpdateTargetTable3) else @index = i24 r24 = nil end if r24 r23 = r24 else r23 = instantiate_node(SyntaxNode,input, index...index) end s0 << r23 end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(UpdateTargetTable4) r0.extend(UpdateTargetTable5) else @index = i0 r0 = nil end node_cache[:update_target_table][start_index] = r0 r0 end
_nt_update_where_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/update.rb, line 628 def _nt_update_where_clause start_index = index if node_cache[:update_where_clause].has_key?(index) cached = node_cache[:update_where_clause][index] if cached node_cache[:update_where_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_where_keyword s0 << r1 if r1 r3 = _nt_space if r3 r2 = r3 else r2 = instantiate_node(SyntaxNode,input, index...index) end s0 << r2 if r2 r4 = _nt_update_condition s0 << r4 end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(UpdateWhereClause0) r0.extend(UpdateWhereClause1) else @index = i0 r0 = nil end node_cache[:update_where_clause][start_index] = r0 r0 end
root()
click to toggle source
# File lib/oracle-sql-parser/grammar/update.rb, line 8 def root @root ||= :update_statement end