Class: Arel::Visitors::SQLite

Inherits:
Object
  • Object
show all
Defined in:
lib/pluck_map/visitors/sqlite.rb

Instance Method Summary collapse

Instance Method Details

#visit_PluckMap_BuildJsonArray(o, collector) ⇒ Object



12
13
14
15
16
# File 'lib/pluck_map/visitors/sqlite.rb', line 12

def visit_PluckMap_BuildJsonArray(o, collector)
  collector << "json_array("
  visit o.args, collector
  collector << ")"
end

#visit_PluckMap_BuildJsonObject(o, collector) ⇒ Object



6
7
8
9
10
# File 'lib/pluck_map/visitors/sqlite.rb', line 6

def visit_PluckMap_BuildJsonObject(o, collector)
  collector << "json_object("
  visit o.args, collector
  collector << ")"
end

#visit_PluckMap_JsonArrayAggregate(o, collector) ⇒ Object



18
19
20
21
22
# File 'lib/pluck_map/visitors/sqlite.rb', line 18

def visit_PluckMap_JsonArrayAggregate(o, collector)
  collector << "json_group_array(json("
  visit o.arg, collector
  collector << "))"
end

#visit_PluckMap_JsonSubqueryAggregate(o, collector) ⇒ Object



24
25
26
27
# File 'lib/pluck_map/visitors/sqlite.rb', line 24

def visit_PluckMap_JsonSubqueryAggregate(o, collector)
  sql = o.scope.select(o.select.as("object")).to_sql
  collector << "COALESCE((SELECT json_group_array(json(d.object)) FROM (#{sql}) AS d), json_array())"
end