On Tue, Jun 8, 2010 at 12:11 PM, Waldemar Kornewald
<wkornew...@gmail.com> wrote:
> On Tue, Jun 8, 2010 at 7:03 PM, Alex Gaynor <alex.gay...@gmail.com> wrote:
>> On Tue, Jun 8, 2010 at 2:37 AM, Waldemar Kornewald <wkornew...@gmail.com> 
>> wrote:
>>> Why did you revert the AutoField patch? BTW, in the Django-nonrel
>>> patch you'll find a few other changes which were related to AutoField:
>>> ForeignKey needs to find out the actual database type instead of
>>> having a hard-coded IntegerField. We added related_db_type() for this
>>> purpose. Maybe you can reuse or adapt some of our code. Still, Django
>>> has a few unit tests which assume that assigning a string to an
>>> AutoField will fail, so we'll need to find a solution for that
>>> (probably by fixing the unit tests).
>>>
>>
>> No, the unittests are quite correct in this instance.  I've gone back
>> and forth on this, but I believe the semantics of AutoField are "auto
>> incrementing field" not "automatically assigned field", and as such
>> the integer validation (and the fact that it occurs early) is a part
>> of the API and semantics and the tests are correct.  Therefore it's my
>> intent to add an NativeAutoField, which is basically whatever the DB's
>> native auto field is, and has corrospondingly looser constraints,
>> pending a discussion with Russ.
>
> Would this NativeAutoField become the default primary key field from
> now on or would MongoDB users have to manually specify that field? The
> former would be ok. The latter would make code reuse more difficult.
>
> Bye,
> Waldemar Kornewald
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Django developers" group.
> To post to this group, send email to django-develop...@googlegroups.com.
> To unsubscribe from this group, send email to 
> django-developers+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/django-developers?hl=en.
>
>

No, there is far too much code out there that relies on the assumption
that the default pk is an integer (and validated as such), including
(but not limited to: the tests).  I've long been of the opinion you
can't just expect code to be portable across entirely different
paradigms of databases and have it magically expected to work.

Alex

-- 
"I disapprove of what you say, but I will defend to the death your
right to say it." -- Voltaire
"The people's good is the highest law." -- Cicero
"Code can always be simpler than you think, but never as simple as you
want" -- Me

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

Reply via email to