10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/sql/expression.rb', line 10
def to_sqlpart
if first==:count_distinct
"count(distinct "+rest_sqlpart+")"
elsif first.to_s =~ /[a-zA-Z]/
first.to_s+"("+rest_sqlpart+")"
elsif first == :== and self[2]==nil
self[1].to_sqlpart+" is null"
elsif first == :== and self[1]==nil
self[2].to_sqlpart+" is null"
elsif x={:& => " and ", :| => " or ", :== => "="}[first]
"("+self[1].to_sqlpart+x+self[2].to_sqlpart+")"
else
"("+self[1].to_sqlpart+first.to_s+self[2].to_sqlpart+")"
end
end
|