[Dbix-class] For a reliable update_or_create we need to make create( { primary_key => undef, ... } ) work in Pg

Zbigniew Lukasiak zzbbyy at gmail.com
Mon Jan 21 13:14:10 GMT 2008


T24gSmFuIDIxLCAyMDA4IDExOjI3IEFNLCBNYXR0IFMgVHJvdXQgPGRiaXgtY2xhc3NAdHJvdXQu
bWUudWs+IHdyb3RlOgo+IE9uIEZyaSwgSmFuIDE4LCAyMDA4IGF0IDAxOjA1OjMwUE0gKzAxMDAs
IFpiaWduaWV3IEx1a2FzaWFrIHdyb3RlOgo+ID4gSSB0aGluayBJIGhhdmUgaXQgd2VsbCBkb2N1
bWVudGVkIGluIHRoZSAicnMtPmZpbmQgZmluZHMgYnkgYWxsCj4gPiBjb2x1bW5zIiB0aHJlYWQg
dGhhdCBmaW5kIGJlaGF2aW91ciBpcyByYXRoZXIgbm90IHJlbGlhYmxlIHdoZW4gaXQgaXMKPiA+
IG5vdCBmZWQgYSB1bmlxdWUgY29uc3RyYWludC4gIEJ5IHRoZSB3YXkgaGVyZSBpcyBhbm90aGVy
IHF1ZXN0aW9uIC0KPiA+IHdoYXQgc2hvdWxkIGhhcHBlbiB3aGVuIHlvdSBjYWxsIGZpbmQgd2l0
aCBqdXN0IG9uZSBvZiB0aGUgdHdvIGZpZWxkcwo+ID4gaW4gYSBjb21wb3NlZCBwcmltYXJ5IGtl
eT8gIEN1cnJlbnRseSBpdCB3b3VsZCByZXR1cm4ganVzdCBmaXJzdAo+ID4gcmVjb3JkIHdpdGgg
dGhhdCBvbmUgZmllbGQgc2V0IHRvIHRoZSBzZWFyY2hlZCB2YWx1ZSwgSSBkb24ndCBrbm93IGlm
Cj4gPiB0aGF0IGlzIGEgYnVnIC0gYnV0IGl0IGlzIHN1cnByaXNpbmcgaXNuJ3QgaXQ/Cj4gPgo+
ID4gSW4gZmFjdCBhbGwgb2YgdGhpcyBpcyBub3QgdGhhdCBiYWQgLSBiZWNhdXNlIGl0IGNhbiBh
bHNvIGJlIHZpZXdlZCBhcwo+ID4gYW4gZXJyb3Igb24gdGhlIGFwcGxpY2F0aW9uIHNpZGUgdG8g
dHJ5IHRvIGZpbmQgc29tZXRoaW5nIHdpdGhvdXQKPiA+IHN1cHBseWluZyBhIHVuaXF1ZSBjb25k
aXRpb24uCj4gPgo+ID4gVGhlIHByb2JsZW0gaXMgdGhhdCB1cGRhdGVfb3JfY3JlYXRlIHJlbGll
cyBvbiBjYWxsaW5nIGZpbmQgd2l0aG91dCBhCj4gPiB1bmlxdWUgY29uc3RyYWludC4gIEFuZCBt
b3JlIHByZWNpc2VseSBpdCBuZWVkcyB0byBkbyB0aGF0IGlmIHlvdSB3YW50Cj4gPiB0byB3cml0
ZSBhIGdlbmVyaWMgaGFuZGxlciBmb3IgdXBkYXRpbmcgb3IgY3JlYXRpbmcgcm93cyB0aGF0IHdv
dWxkCj4gPiB3b3JrIGZvciBhbGwgZGF0YWJhc2VzLiAgVGhlIHJlYXNvbiBmb3IgdGhhdCBpcyB0
aGF0ICRycy0+Y3JlYXRlKCB7Cj4gPiBwcmltYXJ5X2tleSA9PiB1bmRlZiwgLi4uIH0gKSB3aWxs
IG5vdCB3b3JrIGZvciBQZyBzbyB3aGVuIHlvdSBjYWxsCj4gPiB1cGRhdGVfb3JfY3JlYXRlIGFu
ZCB5b3UgaGF2ZSBubyBwcmltYXJ5IGtleSB5b3UgbmVlZCB0byBkZWxldGUgaXQKPiA+IGZyb20g
dGhlIHF1ZXJ5Lgo+Cj4gSSBkb24ndCB1bmRlcnN0YW5kIHRoYXQuIElmIHlvdSBkb24ndCBoYXZl
IGEgUEsgdmFsdWUsIGRvbid0IHBhc3MgdGhlCj4gY29sdW1uLiBUaGlzIHdvcmtzIHBlcmZlY3Rs
eSBhbmQgaXMgb3J0aG9nb25hbCB0byB5b3VyIHByb3Bvc2VkIGZpbmQgY2hhbmdlcy4KClRoYW5r
cyBmb3IgZmluZGluZyB0aW1lIHRvIGFuc3dlci4gIFRoZSBwcm9ibGVtIHdpdGgganVzdCByZW1v
dmluZyB0aGUKUEsgY29sdW1uIGlzIHRoYXQgdGhpcyBxdWVyeSB3aXRob3V0IFBLIHdpbGwgYmUg
cGFzc2VkIHRvIGZpbmQgLSBhbmQKZmluZCBoYXMgbWFueSBidWdzIHRoYXQgYXBwZWFyIGluIHRo
YXQgY2FzZSAoSSBoYXZlIGRvY3VtZW50ZWQgdGhlbSBpbgp0aGUgb3RoZXIgZW1haWxzKS4gIFRo
ZSByZWFzb24gZm9yIHRoYXQgaXMgdGhhdCBmaW5kaW5nIHdpdGhvdXQgYQp1bmlxdWUgY29uZGl0
aW9uIGlzIGEgc3BlY2lhbCBjYXNlIC0gaXQncyBub3QgcmVhbGx5IG9idmlvdXMgd2hhdCBpdApz
aG91bGQgcmV0dXJuIC0gaXQgY291bGQgZXZlbiBiZSBhIHJ1biB0aW1lIGVycm9yLiAgRmluZCBp
cyBiYXNlZCBvbgpzZWFyY2gsIG5vcm1hbGx5IHdoZW4geW91IHJlbW92ZSBhIGNvbmRpdGlvbiBm
cm9tIHNlYXJjaCBpdCBzaG91bGQKcmV0dXJuIG1vcmUgcm93cyAtIGJ1dCBoZXJlIHdoZW4geW91
IHJlbW92ZSBhIGNvbmRpdGlvbiBmcm9tIGZpbmQsIHRvCmNvb3BlcmF0ZSB3aXRoIHRoZSBmaW5k
X29yXyogbWV0aG9kcywgaXQgc2hvdWxkIHJldHVybiBubyByb3dzIGF0IGFsbC4KIFdlIGNhbiBm
b3JjZSBpdCB0byBkbyB0aGF0IC0gYnV0IHRoaXMgaXMgcXVpdGUgY29tcGxleCwgYmVjYXVzZSB5
b3UKY2FuIGhhdmUgdGhlIGNvbmRpdGlvbnMgbm90IG9ubHkgaW4gdGhlIHF1ZXJ5IGJ1dCBhbHNv
IGluIHRoZQpyZXN1bHRzZXQgaXRzZWxmLiAgVGhpcyBuZWVkcyB0byBiZSBkb25lIHZlcnkgY2Fy
ZWZ1bGx5LgoKQnV0IEkgYW0gT0sgd2l0aCB0aGF0IHNvbHV0aW9uIC0gaW4gZmFjdCBJIGhhdmUg
c2VudCBhIHBhdGNoIHRoYXQKd29ya2VkIGZvciBtb3N0IG9mIHRoZSBjYXNlcyB0aGF0IEkgaW1h
Z2luZWQsIGJ1dCBJIGFtIHN1cmUgaXQgd291bGQKYmVuZWZpdCBmcm9tIHlvdXIgcmV2aWV3LiAg
SSBhbSBhdHRhY2hpbmcgaXQgaGVyZSBvbmNlIGFnYWluLgoKQ2hlZXJzLApaYmlnbmlldwpodHRw
Oi8vcGVybGFsY2hlbXkuYmxvZ3Nwb3QuY29tLwotLS0tLS0tLS0tLS0tLSBuZXh0IHBhcnQgLS0t
LS0tLS0tLS0tLS0KQSBub24tdGV4dCBhdHRhY2htZW50IHdhcyBzY3J1YmJlZC4uLgpOYW1lOiBm
aW5kX2ZhbGxiYWNrMi5kaWZmClR5cGU6IHRleHQveC1wYXRjaApTaXplOiAzNDU4IGJ5dGVzCkRl
c2M6IG5vdCBhdmFpbGFibGUKVXJsIDogaHR0cDovL2xpc3RzLnNjc3lzLmNvLnVrL3BpcGVybWFp
bC9kYml4LWNsYXNzL2F0dGFjaG1lbnRzLzIwMDgwMTIxLzM2MzNkMGQ4L2ZpbmRfZmFsbGJhY2sy
LmJpbgo=


More information about the DBIx-Class mailing list