comp.lang.ada
 help / color / mirror / Atom feed
From: Markus E Leypold <development-2006-8ecbb5cc8aREMOVETHIS@ANDTHATm-e-leypold.de>
Subject: Re: Generic Package
Date: Wed, 02 May 2007 09:52:08 +0200
Date: 2007-05-02T09:52:08+02:00	[thread overview]
Message-ID: <k6mz0nzmqf.fsf@hod.lan.m-e-leypold.de> (raw)
In-Reply-To: 1qalyduzy3n5z$.131428s0c8mlz.dlg@40tude.net


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:

> On Tue, 1 May 2007 14:14:46 -0500, Randy Brukardt wrote:
>
>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
>> news:1ozvzzh59ebq8$.yeh9do8s3hig$.dlg@40tude.net...
>>> On Tue, 01 May 2007 15:42:21 +0200, Georg Bauhaus wrote:
>> ...
>>>> Yes, in the sense that the specifics of memory layout and such are
>>>> unknown and irrelevant to the client; in particular, no order needs
>>>> to be specified.
>>>
>>> Apart from obvious uselessness of contracts referencing to the memory
>>> layout, the above is self-contradictory. Memory layout defines an order. It
>>> also is a part of the contract. Hence the interface is ordered.
>> 
>> And now all is clear.
>> 
>> It is impossible to implement a set with having some form of order. So, for
>> us practitioners, an "unordered set" is simply a set with no defined order.
>> I can see that you are arguing about a idealized set unordered set that
>> cannot actually exist - an abstraction that is irrelevant in practice. No
>> wonder people are confused.
>>
>> There is a reason that Ada.Containers has ordered and hashed sets, but not a
>> mathematically unordered one. That because the latter is impossible to
>> implement without a suboptimal mapping into one of the other forms. The net
>> effect is that even if you could use such a form, you would take a massive
>> performance hit to do so (all operations being O(N)). As such, there is no
>> reason to consider such forms or worry about their properties.
>
> I definitely agree with this. And this is the answer to the OP question
> about "generic collections," they would be close to useless.
>
> Yet I think that this abstraction is not that irrelevant. One example is
> distributed systems, like DB engines. There is a reason why relational
> containers are defined unordered. It is not because no order could be
> invented. It is because this abstraction forces the programmer either to
> use snapshots (ordered mappings of an unordered set) or stored procedures
> (foreach-magic) to get at an order. Making the interface ordered would
> probably prevent efficient implementations of the DB engines.
>
> This boils down to the question of the underlying hardware. DB engine is a
> hardware from the application point view. It is a very strange hardware for
> which the logic of being able to enumerate everything at once, here and
> now, does not apply. It is likely so for any system with distributed
> containers and distributed programs dealing with them. In such hardware
> foreach-magic could be in order of magnitude more efficient than ordering
> in situ. Or let's take Get_Pixel / Set_Pixel on the image containers of the
> graphic accelerator. Further, if we looked into the future, on quantum
> computing stuff, then there is a possibility that such hardware could
> become rather normal.


But if we abstain for the moment from so many words and free wheeling
associations and come back to your original statement: You asserted
that one "cannot iterate over relational tables". I still do not get
it. PostgresQL provides an interface to do exactly that:

   http://www.postgresql.org/docs/7.2/static/libpq-exec.html.

In my book that interface provides means to "iterate over relational
tables". Questioning wether this is really iteration or wether
PostgresQL really provides "relational tables" is both, in my opinion,
not a feasible option.

So you have to admit that it is possible to iterate over realtional tables. Q.E.D.

Thanks -- Markus



  reply	other threads:[~2007-05-02  7:52 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-25 22:15 Generic Package andrew.carroll
2007-04-26  0:07 ` Jeffrey R. Carter
2007-04-26  7:46   ` Markus E Leypold
2007-04-26  6:02 ` Martin Krischik
2007-04-26  7:57 ` Dmitry A. Kazakov
2007-04-26 15:31 ` andrew.carroll
2007-04-26 16:07   ` Georg Bauhaus
2007-04-26 19:40     ` andrew.carroll
2007-04-26 20:01       ` Georg Bauhaus
2007-04-26 18:54   ` Dmitry A. Kazakov
2007-04-26 21:52     ` Simon Wright
2007-04-27  9:00       ` Dmitry A. Kazakov
2007-04-27 11:11         ` Georg Bauhaus
2007-04-27 12:06           ` Dmitry A. Kazakov
2007-04-27 12:52             ` Markus E Leypold
2007-04-27 14:10             ` Georg Bauhaus
2007-04-27 14:16               ` Dmitry A. Kazakov
2007-04-27 21:44                 ` Georg Bauhaus
2007-04-28  7:38                   ` Dmitry A. Kazakov
2007-04-28 17:50                     ` Simon Wright
2007-04-28 21:04                     ` Ray Blaak
2007-04-29 16:33                       ` Markus E Leypold
2007-04-27 19:44             ` Simon Wright
2007-04-27 20:34               ` Dmitry A. Kazakov
2007-04-27 21:16                 ` Simon Wright
2007-04-28  7:36                   ` Dmitry A. Kazakov
2007-04-27 11:43         ` Markus E Leypold
2007-04-28 17:35           ` Dmitry A. Kazakov
2007-04-28 23:06             ` Georg Bauhaus
2007-04-29  8:19               ` Dmitry A. Kazakov
2007-04-29 15:10                 ` (see below)
2007-04-29 17:48                   ` Dmitry A. Kazakov
2007-04-29 22:36                     ` (see below)
2007-04-30  6:58                       ` Dmitry A. Kazakov
2007-04-30  9:59                         ` Markus E Leypold
2007-04-30 10:01                         ` Markus E Leypold
2007-04-30 10:36                         ` Georg Bauhaus
2007-04-30 10:40                           ` Georg Bauhaus
2007-04-30 12:14                           ` Dmitry A. Kazakov
2007-04-30 14:57                         ` (see below)
2007-04-30 10:30                 ` Georg Bauhaus
2007-04-30 12:16                   ` Dmitry A. Kazakov
2007-04-30 14:48                     ` Georg Bauhaus
2007-04-30 16:29                       ` Dmitry A. Kazakov
2007-04-30 17:24                         ` Georg Bauhaus
2007-04-30 18:54                           ` Dmitry A. Kazakov
2007-04-30 19:29                         ` Simon Wright
2007-04-30 20:04                           ` Dmitry A. Kazakov
2007-05-01  0:11                             ` Markus E Leypold
2007-05-01  9:02                             ` Georg Bauhaus
2007-05-01 10:19                               ` Dmitry A. Kazakov
2007-05-01 13:42                                 ` Georg Bauhaus
2007-05-01 17:16                                   ` Dmitry A. Kazakov
2007-05-01 19:14                                     ` Randy Brukardt
2007-05-01 20:14                                       ` Dmitry A. Kazakov
2007-05-02  7:52                                         ` Markus E Leypold [this message]
2007-05-02  8:06                                       ` Markus E Leypold
2007-05-03  0:37                                         ` Randy Brukardt
2007-05-03  8:36                                           ` Markus E Leypold
2007-05-03 23:16                                             ` Randy Brukardt
2007-05-04  0:15                                               ` Markus E Leypold
2007-05-01 21:41                                     ` Georg Bauhaus
2007-05-02  6:57                                       ` Ray Blaak
2007-05-02  8:22                                         ` Markus E Leypold
2007-05-02  8:07                                       ` Markus E Leypold
2007-05-02 10:29                                       ` Dmitry A. Kazakov
2007-05-02 11:48                                         ` Georg Bauhaus
2007-05-02 11:50                                           ` Georg Bauhaus
2007-05-02 13:12                                           ` Dmitry A. Kazakov
2007-05-02 14:21                                             ` Markus E Leypold
2007-05-03 18:27                                             ` Georg Bauhaus
2007-05-03 19:07                                               ` Dmitry A. Kazakov
2007-05-03 19:49                                                 ` Markus E Leypold
2007-04-29 16:26             ` Markus E Leypold
2007-04-26 21:50   ` Simon Wright
2007-04-27  4:45   ` Jeffrey R. Carter
2007-04-27  7:45     ` Martin Krischik
2007-04-27 22:54       ` Georg Bauhaus
2007-04-30 20:13         ` Matthew Heaney
2007-04-26 20:48 ` andrew.carroll
  -- strict thread matches above, loose matches on Subject: below --
2003-12-02 23:15 Mr. J.
2003-12-03  9:31 ` Dmitry A. Kazakov
2003-12-02 23:13 generic package Ratson Janiv
2003-12-03 17:39 ` Stephen Leake
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox