Chris Withers wrote:
> Michael Bayer wrote:
>>> Please let me know if there's a better way!
>>
>> you should use TypeDecorator.load_dialect_impl(dialect), check the
>> "name" of the dialect,
>
> Why the name rather than doing:
>
> if isinstance(dialect,MySQLDialect):

you could do that too, though the "name" is more solid

>
>> then return either MSString(arguments) or super.load_dialect_impl().
>
> Okay, but where do I get the arguments from?

you have to stick them on your custom type.    i.e. your typedecorator
object.


>
> super(CaseSensitiveUnicode,self).load_dialect_impl(dialect) leads to:
>
> 263             if isinstance(self.impl, TypeDecorator):
> 264                 return self.impl.dialect_impl(dialect)
> 265             else:
> 266                 return dialect.type_descriptor(self.impl)
>
> ...which then ends up in some adapt_type stuff that looked pretty hairy.
> All I want to do is insert a collation argument when the dialect is
> MySQL...

this is the code:

def load_dialect_impl(self, dialect):
    if dialect.name == 'mysql':
        return MSString(self.length, collation=self.collation_whatever)
    else:
        return super(MyType, self).load_dialect_impl(dialect)



-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to