Re: logical changeset generation v3 - comparison to Postgres-R change set format
Hannu Krosing <hannu@2ndquadrant.com>
From: Hannu Krosing <hannu@2ndQuadrant.com>
To: Noah Misch <noah@leadboat.com>
Cc: Markus Wanner <markus@bluegap.ch>, Andres Freund <andres@anarazel.de>, pgsql-hackers@postgresql.org
Date: 2013-01-13T11:30:41Z
Lists: pgsql-hackers
On 01/13/2013 10:49 AM, Hannu Krosing wrote:
> On 01/13/2013 12:28 AM, Noah Misch wrote:
>> [Catching up on old threads.]
>>
>> On Sat, Nov 17, 2012 at 03:40:49PM +0100, Hannu Krosing wrote:
>>> On 11/17/2012 03:00 PM, Markus Wanner wrote:
>>>> On 11/17/2012 02:30 PM, Hannu Krosing wrote:
>>>>> Is it possible to replicate UPDATEs and DELETEs without a primary
>>>>> key in
>>>>> PostgreSQL-R
>>>> No. There must be some way to logically identify the tuple.
>>> It can be done as selecting on _all_ attributes and updating/deleting
>>> just the first matching row
>>>
>>> create cursor ...
>>> select from t ... where t.* = (....)
>>> fetch one ...
>>> delete where current of ...
>>>
>>> This is on distant (round 3 or 4) roadmap for this work, just was
>>> interested
>>> if you had found any better way of doing this :)
>> That only works if every attribute's type has a notion of equality
>> ("xml" does
>> not). The equality operator may have a name other than "=", and an
>> operator
>> named "=" may exist with semantics other than equality ("box" is
>> affected).
>> Code attempting this replication strategy should select an equality
>> operator
>> the way typcache.c does so.
> Does this hint that postgreSQL also needs an sameness operator
> ( "is" or "===" in same languages).
>
> Or does "IS NOT DISTINCT FROM" already work even for types without
> comparison operator ?
Just checked - it does not, it still looks for "=" operator so it is
just equality-with-nulls
How do people feel about adding a real sameness operator ?
Hannu
>
> --------------
> Hannu
>
>
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Background worker processes
- da07a1e85651 9.3.0 cited
-
Rearrange storage of data in xl_running_xacts.
- 5c11725867ac 9.3.0 cited
-
Basic binary heap implementation.
- 7a2fe9bd0371 9.3.0 cited
-
Embedded list interface
- a66ee69add6e 9.3.0 cited
-
Refactor xlog.c to create src/backend/postmaster/startup.c
- 9aceb6ab3c20 9.2.0 cited