That's a very good idea FWIW. It always felt wrong :)

Cheers,
Nikita

On Friday, March 17, 2017 at 12:14:03 AM UTC+3, Jeremy Evans wrote:
>
> I recently pushed a commit that adds the first Sequel 5 deprecation 
> warnings, which are for using dataset mutation methods.  This is one of the 
> changes I want to make that is most likely to break existing code
>
> One of the other changes I want to make in Sequel 5 that is likely to 
> break existing code is the removal of symbol splitting by default (so that 
> Sequel.split_symbols = false is the default).  This will mean that all 
> symbols are treated as plain identifiers.  To extract from the Sequel 
> 4.40.0 release notes:
>
>       # Sequel.split_symbols = true (current default)
>     :column                    # "column"
>     :table__column             # "table"."column"
>     :column___alias            # "column" AS "alias"
>     :table__column___alias     # "table"."column" AS "alias"
>     Sequel.expr{table__column} # "table"."column"
>
>     # Sequel.split_symbols = false (proposed default)
>     :column                    # "column"
>     :table__column             # "table__column"
>     :column___alias            # "column___alias"
>     :table__column___alias     # "table__column___alias"
>     Sequel.expr{table__column} # "table__column"
>
> Symbol splitting has been the source of many, many bugs in the past. 
>  Disabling it by default will make it much less likely that users will hit 
> such bugs in the future, unless they turn the feature on.
>
> Symbol splitting has existing in Sequel since the first commit that 
> imported code.  As I am not the original author of Sequel, I do not know 
> for sure why it was done, but my guess is that qualification and aliasing 
> were very common, and having the information embedded in a symbol was a 
> nice terse way of expressing the need, and few people use double/triple 
> underscores in their database identifiers.
>
> With recent versions of Sequel (starting in 4.40.0), there are many 
> alternative ways to create qualified/aliased identifiers, from the built in 
> Sequel[:qualifier][:identifier] to the shorter forms supported by the 
> symbol_aref (:qualifier[:identifier]), symbol_as (:identifer.as(:alias)), 
> and s (S(:qualifier)[:identifier]) extensions, or just doing ::S = ::Sequel 
> and using S[:qualifier][:identifier].
>
> Before deprecating symbol splitting, I'd like to get some feedback from 
> the community. If you are in favor or opposed, please post your reasons 
> why.  Absent any feedback, I will probably disable symbol splitting by 
> default.
>
> Thanks,
> Jeremy
>

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" 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 https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to