Re: [Bug 11270] New: Interaction between in-line keys and key generators

On Thu, Nov 11, 2010 at 11:41 AM, Jeremy Orlow <jorlow@chromium.org> wrote:
> On Thu, Nov 11, 2010 at 6:41 PM, Tab Atkins Jr. <jackalmage@gmail.com>
> wrote:
>>
>> On Thu, Nov 11, 2010 at 4:20 AM, Jeremy Orlow <jorlow@chromium.org> wrote:
>> > What would we do if what they provided was not an integer?
>>
>> The behavior isn't very important; throwing would be fine here.  In
>> mySQL, you can only put AUTO_INCREMENT on columns in the integer
>> family.
>>
>>
>> > What happens if
>> > the number they insert is so big that the next one causes overflow?
>>
>> The same thing that happens if you do ++ on a variable holding a
>> number that's too large.  Or, more directly, the same thing that
>> happens if you somehow fill up a table to the integer limit (probably
>> deleting rows along the way to free up space), and then try to add a
>> new row.
>>
>>
>> > What is
>> > the use case for this?  Do we really think that most of the time users
>> > do
>> > this it'll be intentional and not just a mistake?
>>
>> A big one is importing some data into a live table.  Many smaller ones
>> are related to implicit data constraints that exist in the application
>> but aren't directly expressed in the table.  I've had several times
>> when I could normally just rely on auto-numbering for something, but
>> occasionally, due to other data I was inserting elsewhere, had to
>> specify a particular id.
>
> This assumes that your autonumbers aren't going to overlap and is going to
> behave really badly when they do.
> Honestly, I don't care too much about this, but I'm skeptical we're doing
> the right thing here.

Pablo did bring up a good use case, which is wanting to migrate
existing data to a new object store, for example with a new schema.
And every database examined so far has some ability to specify
autonumbered columns.

overlaps aren't a problem in practice since 64bit integers are really
really big. So unless someone "maliciously" sets a number close to the
upper bound of that then overlaps won't be a problem.

/ Jonas

Received on Thursday, 11 November 2010 21:33:51 UTC