On 06/12/2018 05:03 PM, David Davis wrote:
I do think the most compelling case for renaming the field is having
feedback from plugin writers to do so and also the desire to reduce
complexity for plugin writers. Honestly, I am on the fence about
renaming the field.
Just to clarify, is anyone a hard -1 on renaming id?
-1
David
On Tue, Jun 12, 2018 at 5:32 PM, Brian Bouterse <bbout...@redhat.com
<mailto:bbout...@redhat.com>> wrote:
On Tue, Jun 12, 2018 at 5:11 PM, David Davis
<davidda...@redhat.com <mailto:davidda...@redhat.com>> wrote:
On Tue, Jun 12, 2018 at 4:50 PM, Brian Bouterse
<bbout...@redhat.com <mailto:bbout...@redhat.com>> wrote:
Silly question, but could we just call our 'id' 'pk'
instead? Since that is a fully reserved value in Django
for the primary key it seems clearest to just use that?
What about that?
Are you recommending we rename the id field to pk in the
database? I’m not sure if that would work.
I'm wondering if its possible yes. #django says it is but they've
been wrong before. I haven't had a chance to test it.
On Tue, Jun 12, 2018 at 3:44 PM, Jeff Ortel
<jor...@redhat.com <mailto:jor...@redhat.com>> wrote:
On 06/08/2018 02:57 PM, Brian Bouterse wrote:
@jortel: We're blocked on your -1 vote expressed
for 3704. We have practical plugin writer issues
with the current state. Can you elaborate on why
we shouldn't go forward with
https://pulp.plan.io/issues/3704
<https://pulp.plan.io/issues/3704>
The 'ID' column is reserved for the primary key and is
inappropriate for natural keys. This is well
establish convention and best practice.
I don't understand this reasoning. Earlier in the thread
we discussed how the sources recommending these
conventions also mention that if we have a practical
reason or problem with that convention to do something
differently. We received complaints on this name about
collisions so I don't follow how we should still follow
the convention.
Plugin writers specify natural keys. Also, by
introducing '_' prefix (or any prefix) means a table
could have both 'ID' and '_ID' columns which is
especially confusing since the 'ID' column would not
be the primary key.
We have two concepts here that are similar, so I think
that problem is mostly unrelated to this decision. For
example, if we leave the names as-is we have this problem
only now it's named id and errata_id and in addition we'll
have the problems listed below.
How does naming the natural key for an rpm as 'rpm_id'
cause a significant problem for plugin writers?
It's a good question because it's the whole motivation for
this change. It's not an rpm, it's an erratum which
doesn't have nevra like a package. It's also the problem
from another content type I heard about at Config
Management Camp.
It causes problems in two ways:
* plugin users (not writers) who are familiar with 'id' as
part of the erratum data type would then have to also
understand this field name renaming that Pulp arbitrarily
introduces. This could get confusing when the user submit
a filter with id='ID-2115858' and they find nothing
because 'id' is matching on the primary key not on the
'id' attribute of the errata like they expect. Those users
would also be Pulp users so they'll understand that _id
means the pk.
By the same logic, if Pulp users know that id means pk,
wouldn’t they therefore understand that the id is not the
erratum id?
Yes by that logic they probably would know, but the actual errata
field is named 'id' so my it's more about a correctness problem
than confusion. A correctness problem that passes along to users.
If we're going to have confusing names, let's pick names that
allow for alignment with the names already chosen by content types
which commonly do use 'id'. Plugin writer's aren't in control of
those names; they already are chosen by content types.
* plugins specifically may wrap other tools and now they
have to maintain mappings as well. This is specifically
the case with errata which the data model is design to be
name-for-name identical to the createrepo_c interface
Mapping one field to another seems rather minor. Or am I
missing something?
After 22 emails on this thread it feels like a mountain out of a
molehill. I don't mean to waste people's time and energy. The
reason I continue to advocate for it is because when two,
independent plugin writers give feedback suggesting change, even
small change, we should adopt it. The complexity is minor, but
it's there. I've always believed minimizing complexity has been
our goal.
@bmbouters: just curious, where does the rpm 'id' come
from and how is it used differently than the NEVREA
composite natural key.
_______________________________________________
Pulp-dev mailing list
Pulp-dev@redhat.com <mailto:Pulp-dev@redhat.com>
https://www.redhat.com/mailman/listinfo/pulp-dev
<https://www.redhat.com/mailman/listinfo/pulp-dev>
_______________________________________________
Pulp-dev mailing list
Pulp-dev@redhat.com <mailto:Pulp-dev@redhat.com>
https://www.redhat.com/mailman/listinfo/pulp-dev
<https://www.redhat.com/mailman/listinfo/pulp-dev>
_______________________________________________
Pulp-dev mailing list
Pulp-dev@redhat.com
https://www.redhat.com/mailman/listinfo/pulp-dev