Method: Audrey::Engine::SQLite3::Query::Q0#select_hash_elements

Defined in:
lib/audrey/engine/sqlite3/query/q0.rb

#select_hash_elements(subqueries) ⇒ Object


select_hash_elements



170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/audrey/engine/sqlite3/query/q0.rb', line 170

def select_hash_elements(subqueries)
	# $tm.hrm
	
	# early exit
	@fquery.fields.any? or return
	
	# build sql and params
	sql = "select distinct :sqpk as sqpk, hv.parent\nfrom hash_pairs hv\nwhere"
	wheres = []
	params = {}
	
	# sub_query_pk
	subqueries['hash'] = params['sqpk'] = sub_query_pk()
	
	# hash values
	hash_pairs wheres, params
	
	# add wheres
	sql += "\n(" + wheres.join(") and\n(") + ')'
	
	# wrap in insert
	sql = <<~"SQL"
	insert into query_rows
	#{sql}
	SQL
	
	# execute
	@engine.dbh.execute sql, params
end