module OracleSqlParser::Grammar::Insert
Public Instance Methods
_nt_dml_table_expression_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/insert.rb, line 717 def _nt_dml_table_expression_clause start_index = index if node_cache[:dml_table_expression_clause].has_key?(index) cached = node_cache[:dml_table_expression_clause][index] if cached node_cache[:dml_table_expression_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end r0 = _nt_table_reference r0.extend(DmlTableExpressionClause0) r0.extend(DmlTableExpressionClause0) node_cache[:dml_table_expression_clause][start_index] = r0 r0 end
_nt_error_logging_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/insert.rb, line 761 def _nt_error_logging_clause start_index = index if node_cache[:error_logging_clause].has_key?(index) cached = node_cache[:error_logging_clause][index] if cached node_cache[:error_logging_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?('error_logging_clause', false, index)) r0 = instantiate_node(SyntaxNode,input, index...(index + match_len)) @index += match_len else terminal_parse_failure('\'error_logging_clause\'') r0 = nil end node_cache[:error_logging_clause][start_index] = r0 r0 end
_nt_expr_or_default()
click to toggle source
# File lib/oracle-sql-parser/grammar/insert.rb, line 677 def _nt_expr_or_default start_index = index if node_cache[:expr_or_default].has_key?(index) cached = node_cache[:expr_or_default][index] if cached node_cache[:expr_or_default][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0 = index r1 = _nt_expr if r1 r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true r0 = r1 else r2 = _nt_default_keyword r2.extend(ExprOrDefault0) r2.extend(ExprOrDefault0) if r2 r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true r0 = r2 else @index = i0 r0 = nil end end node_cache[:expr_or_default][start_index] = r0 r0 end
_nt_insert_column_names()
click to toggle source
# File lib/oracle-sql-parser/grammar/insert.rb, line 361 def _nt_insert_column_names start_index = index if node_cache[:insert_column_names].has_key?(index) cached = node_cache[:insert_column_names][index] if cached node_cache[:insert_column_names][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] if (match_len = has_terminal?('(', false, index)) r1 = true @index += match_len else terminal_parse_failure('\'(\'') r1 = nil end 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_column_name s0 << r4 if r4 s5, i5 = [], index loop do i6, s6 = index, [] r8 = _nt_space if r8 r7 = r8 else r7 = instantiate_node(SyntaxNode,input, index...index) end s6 << r7 if r7 if (match_len = has_terminal?(',', false, index)) r9 = true @index += match_len else terminal_parse_failure('\',\'') r9 = nil end s6 << r9 if r9 r11 = _nt_space if r11 r10 = r11 else r10 = instantiate_node(SyntaxNode,input, index...index) end s6 << r10 if r10 r12 = _nt_column_name s6 << r12 end end end if s6.last r6 = instantiate_node(SyntaxNode,input, i6...index, s6) r6.extend(InsertColumnNames0) else @index = i6 r6 = nil end if r6 s5 << r6 else break end end r5 = instantiate_node(SyntaxNode,input, i5...index, s5) s0 << r5 if r5 if (match_len = has_terminal?(')', false, index)) r13 = true @index += match_len else terminal_parse_failure('\')\'') r13 = nil end s0 << r13 end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(InsertColumnNames1) r0.extend(InsertColumnNames2) else @index = i0 r0 = nil end node_cache[:insert_column_names][start_index] = r0 r0 end
_nt_insert_into_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/insert.rb, line 263 def _nt_insert_into_clause start_index = index if node_cache[:insert_into_clause].has_key?(index) cached = node_cache[:insert_into_clause][index] if cached node_cache[:insert_into_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_into_keyword s0 << r1 if r1 r2 = _nt_space s0 << r2 if r2 r3 = _nt_dml_table_expression_clause s0 << r3 if r3 r4 = _nt_space s0 << r4 if r4 i6, s6 = index, [] r7 = _nt_t_alias s6 << r7 if r7 r8 = _nt_space s6 << r8 end if s6.last r6 = instantiate_node(SyntaxNode,input, i6...index, s6) r6.extend(InsertIntoClause0) else @index = i6 r6 = nil end if r6 r5 = r6 else r5 = instantiate_node(SyntaxNode,input, index...index) end s0 << r5 if r5 r10 = _nt_insert_column_names 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(InsertIntoClause1) r0.extend(InsertIntoClause2) else @index = i0 r0 = nil end node_cache[:insert_into_clause][start_index] = r0 r0 end
_nt_insert_statement()
click to toggle source
# File lib/oracle-sql-parser/grammar/insert.rb, line 28 def _nt_insert_statement start_index = index if node_cache[:insert_statement].has_key?(index) cached = node_cache[:insert_statement][index] if cached node_cache[:insert_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_insert_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 r5 = _nt_hint if r5 r4 = r5 else r4 = instantiate_node(SyntaxNode,input, index...index) end s0 << r4 if r4 i6 = index r7 = _nt_single_table_insert if r7 r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true r6 = r7 else r8 = _nt_multi_table_insert if r8 r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true r6 = r8 else @index = i6 r6 = nil end end s0 << r6 end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(InsertStatement0) r0.extend(InsertStatement1) else @index = i0 r0 = nil end node_cache[:insert_statement][start_index] = r0 r0 end
_nt_insert_values()
click to toggle source
# File lib/oracle-sql-parser/grammar/insert.rb, line 593 def _nt_insert_values start_index = index if node_cache[:insert_values].has_key?(index) cached = node_cache[:insert_values][index] if cached node_cache[:insert_values][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_expr_or_default s0 << r1 if r1 s2, i2 = [], index loop do i3, s3 = index, [] r5 = _nt_space if r5 r4 = r5 else r4 = instantiate_node(SyntaxNode,input, index...index) end s3 << r4 if r4 if (match_len = has_terminal?(',', false, index)) r6 = true @index += match_len else terminal_parse_failure('\',\'') r6 = nil end s3 << r6 if r6 r8 = _nt_space if r8 r7 = r8 else r7 = instantiate_node(SyntaxNode,input, index...index) end s3 << r7 if r7 r9 = _nt_expr_or_default s3 << r9 end end end if s3.last r3 = instantiate_node(SyntaxNode,input, i3...index, s3) r3.extend(InsertValues0) else @index = i3 r3 = nil end if r3 s2 << r3 else break end end r2 = instantiate_node(SyntaxNode,input, i2...index, s2) s0 << r2 end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(InsertValues1) r0.extend(InsertValues2) else @index = i0 r0 = nil end node_cache[:insert_values][start_index] = r0 r0 end
_nt_multi_table_insert()
click to toggle source
# File lib/oracle-sql-parser/grammar/insert.rb, line 737 def _nt_multi_table_insert start_index = index if node_cache[:multi_table_insert].has_key?(index) cached = node_cache[:multi_table_insert][index] if cached node_cache[:multi_table_insert][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end if (match_len = has_terminal?('multi_table_insert', false, index)) r0 = instantiate_node(SyntaxNode,input, index...(index + match_len)) @index += match_len else terminal_parse_failure('\'multi_table_insert\'') r0 = nil end node_cache[:multi_table_insert][start_index] = r0 r0 end
_nt_single_table_insert()
click to toggle source
# File lib/oracle-sql-parser/grammar/insert.rb, line 126 def _nt_single_table_insert start_index = index if node_cache[:single_table_insert].has_key?(index) cached = node_cache[:single_table_insert][index] if cached node_cache[:single_table_insert][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_insert_into_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 i4 = index i5, s5 = index, [] r6 = _nt_values_clause s5 << r6 if r6 r8 = _nt_returning_clause if r8 r7 = r8 else r7 = instantiate_node(SyntaxNode,input, index...index) end s5 << r7 end if s5.last r5 = instantiate_node(SyntaxNode,input, i5...index, s5) r5.extend(SingleTableInsert0) else @index = i5 r5 = nil end if r5 r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true r4 = r5 else r9 = _nt_subquery if r9 r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true r4 = r9 else @index = i4 r4 = nil end end s0 << r4 if r4 r11 = _nt_space if r11 r10 = r11 else r10 = instantiate_node(SyntaxNode,input, index...index) end s0 << r10 if r10 r13 = _nt_error_logging_clause if r13 r12 = r13 else r12 = instantiate_node(SyntaxNode,input, index...index) end s0 << r12 end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(SingleTableInsert1) r0.extend(SingleTableInsert2) else @index = i0 r0 = nil end node_cache[:single_table_insert][start_index] = r0 r0 end
_nt_values_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/insert.rb, line 485 def _nt_values_clause start_index = index if node_cache[:values_clause].has_key?(index) cached = node_cache[:values_clause][index] if cached node_cache[:values_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_values_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 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_insert_values s0 << r7 if r7 r9 = _nt_space if r9 r8 = r9 else r8 = instantiate_node(SyntaxNode,input, index...index) end s0 << r8 if r8 if (match_len = has_terminal?(')', false, index)) r10 = true @index += match_len else terminal_parse_failure('\')\'') r10 = nil end s0 << r10 end end end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(ValuesClause0) r0.extend(ValuesClause1) else @index = i0 r0 = nil end node_cache[:values_clause][start_index] = r0 r0 end
root()
click to toggle source
# File lib/oracle-sql-parser/grammar/insert.rb, line 8 def root @root ||= :insert_statement end