Method: Sequel::Dataset#subscript_sql_append

Defined in:
lib/sequel/dataset/sql.rb

#subscript_sql_append(sql, s) ⇒ Object

Append literalization of subscripts (SQL array accesses) to SQL string.



764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
# File 'lib/sequel/dataset/sql.rb', line 764

def subscript_sql_append(sql, s)
  case s.expression
  when Symbol, SQL::Subscript, SQL::Identifier, SQL::QualifiedIdentifier
    # nothing
  else
    wrap_expression = true
    sql << '('
  end
  literal_append(sql, s.expression)
  if wrap_expression
    sql << ')['
  else
    sql << '['
  end
  sub = s.sub
  if sub.length == 1 && (range = sub.first).is_a?(Range)
    literal_append(sql, range.begin)
    sql << ':'
    e = range.end
    e -= 1 if range.exclude_end? && e.is_a?(Integer)
    literal_append(sql, e)
  else
    expression_list_append(sql, s.sub)
  end
  sql << ']'
end