so... `select_one` and `select_all`, maybe?

On Thu, Apr 10, 2014 at 10:37 PM, Rafael Mendonça França <
[email protected]> wrote:

> I was discussing with Aaron and we believe that passing relations to these
> methods should not be advised. This is why we want to add a method to
> relation to get the low level values.
>
> Rafael Mendonça França
> http://twitter.com/rafaelfranca
> https://github.com/rafaelfranca
>
>
> On Thu, Apr 10, 2014 at 2:03 PM, Yves Senn <[email protected]> wrote:
>
>> We should keep #to_sql and Arel as private API. The use-case to get the
>> raw response from the driver remains.
>> It would be nice to use ActiveRecord to build the SQL but get access to
>> the raw driver result and not the mapped objects.
>>
>> Do the lower level methods like `select_all`, `select_values`, etc.
>> accept Relations?
>>
>> The current documentation is a bit confusing about the API (see
>> http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/DatabaseStatements.html#method-i-select_values
>> ):
>>   * The method is in the docs, so it's assumed to be public.
>>   * We name the argument arel, which let's you in belief that arel is
>> public as well
>>   * The example uses raw SQL.
>>
>> It would be good to get some light into the dark.
>>
>> On 10.04.2014, at 18:57, Rafael Mendonça França <[email protected]>
>> wrote:
>>
>> to_a is already used to return an Array of objects.
>>
>> select_rows seems good to me.
>>
>> But Arel and #to_sql seem to be used widely.
>>
>> Yes, this is sad. They was never public API. But I think we can't do
>> anything besides make clear what is public and what is private API.
>>
>> Rafael Mendonça França
>> http://twitter.com/rafaelfranca
>> https://github.com/rafaelfranca
>>
>>
>> On Thu, Apr 10, 2014 at 1:53 PM, Dheeraj Kumar <[email protected]
>> > wrote:
>>
>>> How about #to_a and #to_h instead?
>>>
>>> #to_h would return the results as a hash, useful when you are retrieving
>>> a single row, but many columns.
>>> #to_a would return the results as an array of hashes, useful when you
>>> have multiple rows.
>>>
>>>
>>> On Thu, Apr 10, 2014 at 10:11 PM, Rafael Mendonça França <
>>> [email protected]> wrote:
>>>
>>>> +1, too.
>>>>
>>>> I was planning to add this method because calling `to_sql` is not a
>>>> good solution. I think the name we choose was `select_all`.
>>>>
>>>> Rafael Mendonça França
>>>> http://twitter.com/rafaelfranca
>>>> https://github.com/rafaelfranca
>>>>
>>>>
>>>> On Thu, Apr 10, 2014 at 1:03 PM, Dheeraj Kumar <
>>>> [email protected]> wrote:
>>>>
>>>>> +1, I do this a lot.
>>>>> On Apr 10, 2014 9:30 PM, "Evgeniy Sokovikov" <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hello. Is it possible to get raw sql query result from 
>>>>>> ActiveRecord::Relation ?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Now I can make it this way:
>>>>>>
>>>>>> sql = Note.select('count(*), commit_id').group(:commit_id).to_sql
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ActiveRecord::Base.connection.execute(sql).to_a
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> I would like something like this:
>>>>>>
>>>>>>
>>>>>> Note.select('count(*), commit_id').group(:commit_id).raw
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> But didn't find such method.
>>>>>>
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Ruby on Rails: Core" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> To post to this group, send email to
>>>>>> [email protected].
>>>>>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Ruby on Rails: Core" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected]
>>>>> .
>>>>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Ruby on Rails: Core" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Ruby on Rails: Core" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Ruby on Rails: Core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Ruby on Rails: Core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/rubyonrails-core.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to