<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-780</id>
	<title>Nabble - PostgreSQL - hackers</title>
	<updated>2009-12-16T13:37:43Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/PostgreSQL---hackers-f780.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/PostgreSQL---hackers-f780.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26818910</id>
	<title>Re: Range types</title>
	<published>2009-12-16T13:37:43Z</published>
	<updated>2009-12-16T13:37:43Z</updated>
	<author>
		<name>Tom Lane-2</name>
	</author>
	<content type="html">Martijn van Oosterhout &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818910&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kleptog@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; However, it does seem reasonable to allow people to restrict, either by
&lt;br&gt;&amp;gt; typmod or a check constraint the kinds of values that can be stored in
&lt;br&gt;&amp;gt; a particular column. Then an application can decide which way they want
&lt;br&gt;&amp;gt; their intervals to work and have the database enforce it.
&lt;br&gt;&lt;br&gt;Sure --- the range datatype should absolutely provide inquiry functions
&lt;br&gt;that let you determine all the properties of a range, so something like
&lt;br&gt;&amp;quot;CHECK (is_open_on_right(col))&amp;quot; would work for that. &amp;nbsp;I'm of the opinion
&lt;br&gt;that we must not usurp typmod for range behavior --- the right thing is
&lt;br&gt;to pass that through to the contained type, just as we do with arrays.
&lt;br&gt;&lt;br&gt;(Note that a range over timestamp(0) would eliminate at least some of
&lt;br&gt;the platform dependencies we've been arguing about. &amp;nbsp;I'm still quite
&lt;br&gt;dubious that &amp;quot;next timestamp&amp;quot; is anything except evidence that you've
&lt;br&gt;misformulated your problem, though.)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; regards, tom lane
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818910&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26818910.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818839</id>
	<title>Re: Range types</title>
	<published>2009-12-16T13:32:59Z</published>
	<updated>2009-12-16T13:32:59Z</updated>
	<author>
		<name>Jeff Davis-8</name>
	</author>
	<content type="html">On Wed, 2009-12-16 at 15:46 -0500, Tom Lane wrote:
&lt;br&gt;&amp;gt; &amp;gt; Huh? We're miscommunicating somewhere.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Yeah, apparently. &amp;nbsp;By open-ended I meant -infinity left bound, or null
&lt;br&gt;&amp;gt; left bound if you prefer. &amp;nbsp;Not sure if there's a better term.
&lt;br&gt;&lt;br&gt;But my proposal allowed both of those things with various flag settings
&lt;br&gt;(because it has a flag byte in the latest proposal). I said so
&lt;br&gt;explicitly.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Jeff Davis
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818839&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26818839.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818783</id>
	<title>Re: Update on true serializable techniques in MVCC</title>
	<published>2009-12-16T13:28:27Z</published>
	<updated>2009-12-16T13:28:27Z</updated>
	<author>
		<name>Kevin Grittner</name>
	</author>
	<content type="html">Robert, Please forgive a couple editorial inserts to your statement
&lt;br&gt;-- I hope it clarifies. &amp;nbsp;If I've distorted your meaning, feel free
&lt;br&gt;to straighten me out. &amp;nbsp; :-)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;Robert Haas &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818783&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;robertmhaas@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;gt; This thread veered off into a discussion of the traditional
&lt;br&gt;&amp;gt; [predicate locking] technique, rather than the [serializable] one
&lt;br&gt;&amp;gt; in the paper. &amp;nbsp;I think that's the part Alvaro was responding to.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;If you're right about Alvaro's concern -- my rough understanding is
&lt;br&gt;that HOT creates a linked lists of tuples which are mutations of one
&lt;br&gt;another without altering any value which is part of an index. &amp;nbsp;If
&lt;br&gt;that's anywhere near a correct understanding, I can't see how there
&lt;br&gt;would be a problem with using the described locking techniques with
&lt;br&gt;any tuple on the list.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;As an aside, the thesis mentions smart use of multiple locking
&lt;br&gt;granularities only under the &amp;quot;future work&amp;quot; section. &amp;nbsp;I can't see an
&lt;br&gt;implementation being considered production quality without that, as
&lt;br&gt;without it there would be no way to constrain the space required to
&lt;br&gt;track the locks. &amp;nbsp;But there is no shortage of literature on how to
&lt;br&gt;do that, so I view such discussions as more appropriate to low-level
&lt;br&gt;implementation discussions should we ever get serious about using
&lt;br&gt;the techniques which are the main thrust of Dr. Cahill's thesis.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;If anyone is interested in reviewing recent literature on these
&lt;br&gt;techniques, Dr. Cahill seemed to like (Hellerstein et al., 2007), to
&lt;br&gt;the point where I may well track it down when I'm done pondering the
&lt;br&gt;work which I referenced at the start of this thread.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-Kevin
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818783&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Update-on-true-serializable-techniques-in-MVCC-tp26799919p26818783.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818649</id>
	<title>Re: Range types</title>
	<published>2009-12-16T13:17:16Z</published>
	<updated>2009-12-16T13:17:16Z</updated>
	<author>
		<name>Martijn van Oosterhout</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 03:57:44PM -0500, Tom Lane wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Jeff Davis &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818649&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; &amp;gt; I still have not seen an answer to the problem of changing the
&lt;br&gt;&amp;gt; &amp;gt; representation of a continuous range. If you have the continuous range
&lt;br&gt;&amp;gt; &amp;gt; [5, 10], you're pretty much stuck with that representation, even if the
&lt;br&gt;&amp;gt; &amp;gt; application is expecting things in the form [ ).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; That is not our problem. &amp;nbsp;It's the application's problem if it can't
&lt;br&gt;&amp;gt; handle the concept. &amp;nbsp;You might as well be complaining that type numeric
&lt;br&gt;&amp;gt; is broken because it can represent values that will fail to fit into
&lt;br&gt;&amp;gt; float8 when some application tries to force them into that form.
&lt;/div&gt;&lt;/div&gt;However, it does seem reasonable to allow people to restrict, either by
&lt;br&gt;typmod or a check constraint the kinds of values that can be stored in
&lt;br&gt;a particular column. Then an application can decide which way they want
&lt;br&gt;their intervals to work and have the database enforce it.
&lt;br&gt;&lt;br&gt;(Intermediate values may become a different kind, just as long as the
&lt;br&gt;result being stored it the right kind.)
&lt;br&gt;&lt;br&gt;Have a nice day,
&lt;br&gt;-- 
&lt;br&gt;Martijn van Oosterhout &amp;nbsp; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818649&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kleptog@...&lt;/a&gt;&amp;gt; &amp;nbsp; &lt;a href=&quot;http://svana.org/kleptog/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svana.org/kleptog/&lt;/a&gt;&lt;br&gt;&amp;gt; Please line up in a tree and maintain the heap invariant while 
&lt;br&gt;&amp;gt; boarding. Thank you for flying nlogn airlines.
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (196 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26818649/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26818649.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818327</id>
	<title>Re: Range types</title>
	<published>2009-12-16T12:57:44Z</published>
	<updated>2009-12-16T12:57:44Z</updated>
	<author>
		<name>Tom Lane-2</name>
	</author>
	<content type="html">Jeff Davis &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818327&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; On Wed, 2009-12-16 at 13:59 -0500, Tom Lane wrote:
&lt;br&gt;&amp;gt;&amp;gt; The argument for having
&lt;br&gt;&amp;gt;&amp;gt; granularity wired into the datatype seems to boil down to just space
&lt;br&gt;&amp;gt;&amp;gt; savings. &amp;nbsp;I don't find that compelling enough to justify code
&lt;br&gt;&amp;gt;&amp;gt; contortions and user-visible restrictions on functionality.
&lt;br&gt;&lt;br&gt;&amp;gt; The argument (at least from me) is that discrete ranges have better
&lt;br&gt;&amp;gt; semantics. The counterargument was that the granularity of a timestamp
&lt;br&gt;&amp;gt; is an implementation detail. So I countered by making it explicit.
&lt;br&gt;&lt;br&gt;Making it explicit doesn't fix the fact that you can't rely on the
&lt;br&gt;arithmetic to be exact.
&lt;br&gt;&lt;br&gt;&amp;gt; I still have not seen an answer to the problem of changing the
&lt;br&gt;&amp;gt; representation of a continuous range. If you have the continuous range
&lt;br&gt;&amp;gt; [5, 10], you're pretty much stuck with that representation, even if the
&lt;br&gt;&amp;gt; application is expecting things in the form [ ).
&lt;br&gt;&lt;br&gt;That is not our problem. &amp;nbsp;It's the application's problem if it can't
&lt;br&gt;handle the concept. &amp;nbsp;You might as well be complaining that type numeric
&lt;br&gt;is broken because it can represent values that will fail to fit into
&lt;br&gt;float8 when some application tries to force them into that form.
&lt;br&gt;&lt;br&gt;&amp;gt; And to further make the case for allowing user-defined discrete ranges,
&lt;br&gt;&amp;gt; what about ip4r?
&lt;br&gt;&lt;br&gt;What about it? &amp;nbsp;I don't have a problem with the concept that next() is
&lt;br&gt;well defined for some datatypes. &amp;nbsp;I just have a problem with the concept
&lt;br&gt;that it's well-defined for timestamps. &amp;nbsp;It's not, and I don't believe
&lt;br&gt;that forcing it to have some definition is useful in the real world
&lt;br&gt;(which, as a rule, isn't going to fit the simplifying assumptions you
&lt;br&gt;have to make to make it even sort-of work).
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; regards, tom lane
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818327&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26818327.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818165</id>
	<title>Re: Range types</title>
	<published>2009-12-16T12:46:58Z</published>
	<updated>2009-12-16T12:46:58Z</updated>
	<author>
		<name>Tom Lane-2</name>
	</author>
	<content type="html">Jeff Davis &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818165&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; On Wed, 2009-12-16 at 12:50 -0500, Tom Lane wrote:
&lt;br&gt;&amp;gt;&amp;gt; I'm still not exactly clear on what the use-case is for discrete
&lt;br&gt;&amp;gt;&amp;gt; timestamp ranges, and I wonder how many people are going to be happy
&lt;br&gt;&amp;gt;&amp;gt; with a representation that can't handle a range that's open-ended
&lt;br&gt;&amp;gt;&amp;gt; on the left.
&lt;br&gt;&lt;br&gt;&amp;gt; Huh? We're miscommunicating somewhere.
&lt;br&gt;&lt;br&gt;Yeah, apparently. &amp;nbsp;By open-ended I meant -infinity left bound, or null
&lt;br&gt;left bound if you prefer. &amp;nbsp;Not sure if there's a better term.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; regards, tom lane
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818165&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26818165.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818098</id>
	<title>Re: Range types</title>
	<published>2009-12-16T12:42:27Z</published>
	<updated>2009-12-16T12:42:27Z</updated>
	<author>
		<name>Tom Lane-2</name>
	</author>
	<content type="html">Martijn van Oosterhout &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818098&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kleptog@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; But a period type will take just one or two more bytes if you don't
&lt;br&gt;&amp;gt; require alignment. Alignment on a varlena type seems silly anyway,
&lt;br&gt;&amp;gt; since you'll be aligning the header byte rather than the content.
&lt;br&gt;&lt;br&gt;You might still end up paying the alignment overhead after the field,
&lt;br&gt;of course. &amp;nbsp;But avoiding embedding the alignment in the type itself
&lt;br&gt;seems worth doing.
&lt;br&gt;&lt;br&gt;One idea that might be interesting to consider in this regard is
&lt;br&gt;force-packing varlena range values. &amp;nbsp;Consider a text range('a', 'b').
&lt;br&gt;The datums are likely to come in with 4-byte headers requiring
&lt;br&gt;alignment. &amp;nbsp;If we have the smarts to force them to 1-byte header form
&lt;br&gt;inside the varlena range value, not only do we save bytes right there,
&lt;br&gt;but we don't have to expend cycles to copy them somewhere to re-align
&lt;br&gt;them before we can pass them to the datatype-specific functions.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; regards, tom lane
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818098&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26818098.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818088</id>
	<title>Re: Range types</title>
	<published>2009-12-16T12:41:31Z</published>
	<updated>2009-12-16T12:41:31Z</updated>
	<author>
		<name>Alvaro Herrera-7</name>
	</author>
	<content type="html">Tom Lane wrote:
&lt;br&gt;&amp;gt; Alvaro Herrera &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818088&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;alvherre@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; &amp;gt; In short, I think that while it is possible to define ranges of strings,
&lt;br&gt;&amp;gt; &amp;gt; it is not as useful as one would like.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Note it is not the *range* that is the problem, it is the assumption
&lt;br&gt;&amp;gt; that there's a unique &amp;quot;next&amp;quot; string. &amp;nbsp;There's no unique next in the
&lt;br&gt;&amp;gt; reals or rationals either, but we have no problem considering intervals
&lt;br&gt;&amp;gt; over those sets.
&lt;br&gt;&lt;br&gt;Yeah, agreed. &amp;nbsp;It's easy (I think) to define more useful ranges of
&lt;br&gt;strings if you don't insist in having &amp;quot;next&amp;quot;.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Alvaro Herrera &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.CommandPrompt.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.CommandPrompt.com/&lt;/a&gt;&lt;br&gt;PostgreSQL Replication, Consulting, Custom Development, 24x7 support
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818088&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26818088.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818011</id>
	<title>Re: Range types</title>
	<published>2009-12-16T12:35:38Z</published>
	<updated>2009-12-16T12:35:38Z</updated>
	<author>
		<name>Jeff Davis-8</name>
	</author>
	<content type="html">On Wed, 2009-12-16 at 13:59 -0500, Tom Lane wrote:
&lt;br&gt;&amp;gt; The argument for having
&lt;br&gt;&amp;gt; granularity wired into the datatype seems to boil down to just space
&lt;br&gt;&amp;gt; savings. &amp;nbsp;I don't find that compelling enough to justify code
&lt;br&gt;&amp;gt; contortions and user-visible restrictions on functionality.
&lt;br&gt;&lt;br&gt;The argument (at least from me) is that discrete ranges have better
&lt;br&gt;semantics. The counterargument was that the granularity of a timestamp
&lt;br&gt;is an implementation detail. So I countered by making it explicit.
&lt;br&gt;&lt;br&gt;Space savings is not crucial, but it would be frustrating to needlessly
&lt;br&gt;waste space.
&lt;br&gt;&lt;br&gt;I still have not seen an answer to the problem of changing the
&lt;br&gt;representation of a continuous range. If you have the continuous range
&lt;br&gt;[5, 10], you're pretty much stuck with that representation, even if the
&lt;br&gt;application is expecting things in the form [ ).
&lt;br&gt;&lt;br&gt;&amp;gt;From an application's standpoint, you probably want to get the
&lt;br&gt;information about a range as separate columns (as opposed to parsing a
&lt;br&gt;string). So an application expecting data in [) format might use a query
&lt;br&gt;like:
&lt;br&gt;&lt;br&gt;&amp;nbsp;select ..., first(myperiod), next(myperiod) from mytable;
&lt;br&gt;&lt;br&gt;That gives the application complete information about the range. You can
&lt;br&gt;even make a view over a table like that to make it even more transparent
&lt;br&gt;to the application. It's not entirely unreasonable that many such
&lt;br&gt;applications exist; there are many presentations and tutorials that have
&lt;br&gt;been telling people to use a &amp;quot;start&amp;quot; and &amp;quot;end&amp;quot; column, and assume that
&lt;br&gt;the start is inclusive and the end is exclusive.
&lt;br&gt;&lt;br&gt;If there is some other application that expects data in (] format, you
&lt;br&gt;just use the query:
&lt;br&gt;&lt;br&gt;&amp;nbsp; select ..., prior(myperiod), last(myperiod) from mytable;
&lt;br&gt;&lt;br&gt;With discrete ranges, that all just works (barring overflow or special
&lt;br&gt;values).
&lt;br&gt;&lt;br&gt;With continuous ranges, first() or next() might fail on some values that
&lt;br&gt;were produced by some other application. Really, for continuous ranges,
&lt;br&gt;you'd need to have a query like:
&lt;br&gt;&lt;br&gt;&amp;nbsp; select ..., start(myperiod), start_inclusive(myperiod),
&lt;br&gt;&amp;nbsp; &amp;nbsp; end(myperiod), end_inclusive(myperiod) from mytable;
&lt;br&gt;&lt;br&gt;in order to have all of the information. And that means that the
&lt;br&gt;application needs a full implementation of a range type to understand
&lt;br&gt;the inclusivity and produce a correct result.
&lt;br&gt;&lt;br&gt;And to further make the case for allowing user-defined discrete ranges,
&lt;br&gt;what about ip4r? That's a discrete range, and it's user-defined. And
&lt;br&gt;that probably means other useful discrete ranges will be invented, as
&lt;br&gt;well.
&lt;br&gt;&lt;br&gt;If we want to say that there is no discrete TIMESTAMP range by default,
&lt;br&gt;and that the superuser has to define it, that's one thing. But if we say
&lt;br&gt;that the only acceptable base types for discrete ranges will be
&lt;br&gt;hard-wired, that's way too restrictive. If nothing else, it makes some
&lt;br&gt;system types &amp;quot;special&amp;quot; which we have not done very many other places.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Jeff Davis
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818011&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26818011.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817975</id>
	<title>Re: Does &quot;verbose&quot; Need to be Reserved?</title>
	<published>2009-12-16T12:31:11Z</published>
	<updated>2009-12-16T12:31:11Z</updated>
	<author>
		<name>Tom Lane-2</name>
	</author>
	<content type="html">&amp;quot;David E. Wheeler&amp;quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817975&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;david@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; I asked on IRC, and Andrew RhodiumToad Gierth pointed out that
&lt;br&gt;&amp;gt; it became a reserved word at some point.
&lt;br&gt;&lt;br&gt;&amp;quot;Some point&amp;quot; would have been around the time VACUUM VERBOSE got
&lt;br&gt;invented, ie January 1997 according to the CVS logs. &amp;nbsp;We can't unreserve
&lt;br&gt;it until you're ready to break that syntax (is VERBOSE a table name
&lt;br&gt;or a flag for a database-wide vacuum?). &amp;nbsp;Don't hold your breath.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; regards, tom lane
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817975&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Does-%22verbose%22-Need-to-be-Reserved--tp26817588p26817975.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817922</id>
	<title>Re: Update on true serializable techniques in MVCC</title>
	<published>2009-12-16T12:27:13Z</published>
	<updated>2009-12-16T12:27:13Z</updated>
	<author>
		<name>Robert Haas</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 1:30 PM, Kevin Grittner
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817922&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Kevin.Grittner@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Alvaro Herrera &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817922&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;alvherre@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; So you'd have to disable HOT updates when true serializability was
&lt;br&gt;&amp;gt;&amp;gt; active?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I wouldn't think so; but someone familiar with HOT logic could
&lt;br&gt;&amp;gt; probably determine whether the unmodified algorithm could be used by
&lt;br&gt;&amp;gt; reviewing the &amp;quot;simplifying assumptions&amp;quot; near the bottom of page 42,
&lt;br&gt;&amp;gt; and the page about &amp;quot;Generalizing to other database engines&amp;quot; (section
&lt;br&gt;&amp;gt; 4.8).  I think those portions might stand on their own without
&lt;br&gt;&amp;gt; reading the rest of the document.
&lt;/div&gt;&lt;br&gt;This thread veered off into a discussion of the traditional technique,
&lt;br&gt;rather than the one in the paper. &amp;nbsp;I think that's the part Alvaro was
&lt;br&gt;responding to.
&lt;br&gt;&lt;br&gt;...Robert
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817922&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Update-on-true-serializable-techniques-in-MVCC-tp26799919p26817922.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817908</id>
	<title>Re: Range types</title>
	<published>2009-12-16T12:26:23Z</published>
	<updated>2009-12-16T12:26:23Z</updated>
	<author>
		<name>Tom Lane-2</name>
	</author>
	<content type="html">Alvaro Herrera &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817908&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;alvherre@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; In short, I think that while it is possible to define ranges of strings,
&lt;br&gt;&amp;gt; it is not as useful as one would like.
&lt;br&gt;&lt;br&gt;Note it is not the *range* that is the problem, it is the assumption
&lt;br&gt;that there's a unique &amp;quot;next&amp;quot; string. &amp;nbsp;There's no unique next in the
&lt;br&gt;reals or rationals either, but we have no problem considering intervals
&lt;br&gt;over those sets.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; regards, tom lane
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817908&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26817908.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817902</id>
	<title>Re: Update on true serializable techniques in MVCC</title>
	<published>2009-12-16T12:26:22Z</published>
	<updated>2009-12-16T12:26:22Z</updated>
	<author>
		<name>Robert Haas</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 1:29 PM, Boszormenyi Zoltan &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817902&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;zb@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Robert Haas írta:
&lt;br&gt;&amp;gt;&amp;gt; On Wed, Dec 16, 2009 at 1:25 PM, Robert Haas &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817902&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;robertmhaas@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Wed, Dec 16, 2009 at 1:14 PM, Alvaro Herrera
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817902&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;alvherre@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Robert Haas escribió:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Wed, Dec 16, 2009 at 10:29 AM, Andres Freund &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817902&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andres@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Wednesday 16 December 2009 16:24:42 Robert Haas wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;   Inserts and deletes follow the same protocol, obtaining an exclusive
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;   lock on the row after the one being inserted or deleted. The result
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;   of this locking protocol is that a range scan prevents concurrent
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;   inserts or delete within the range of the scan, and vice versa.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; That sounds like it should actually work.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Only if you can guarantee that the database will access the rows using
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; some particular index.  If it gets to the data some other way it might
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; accidentally circumvent the lock.  That's kind of a killer in terms of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; making this work for PostgreSQL.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Isnt the whole topic only relevant for writing access? There you have to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; access the index anyway.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Yeah, I guess you have to insert the new tuple.  I guess while you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; were at it you might check whether the next tuple is locked...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; So you'd have to disable HOT updates when true serializability was
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; active?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I thought about that, but I don't think so.   HOT only applies to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; updates, and predicate locking only applies to inserts.  Unless I have
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; my head in the sand?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Err, no, wait.  Predicate locking can apply to updates, but since HOT
&lt;br&gt;&amp;gt;&amp;gt; updates never update an indexed column, I think we might still be OK?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; A predicate can include columns from an index plus others.
&lt;br&gt;&amp;gt; Am I missing something?
&lt;/div&gt;&lt;br&gt;Hmm, interesting point. &amp;nbsp;In that case you couldn't use the index to
&lt;br&gt;enforce predicate locking under MVCC without disabling HOT. &amp;nbsp;But there
&lt;br&gt;will be other cases where that wouldn't help anyway - a predicate
&lt;br&gt;could also include unindexed columns exclusively. &amp;nbsp;For those, the
&lt;br&gt;traditional approach (not the one discussed in this paper) probably
&lt;br&gt;requires locking against any heap insert, or checking each new heap
&lt;br&gt;insert against the constraint, or... something.
&lt;br&gt;&lt;br&gt;...Robert
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817902&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Update-on-true-serializable-techniques-in-MVCC-tp26799919p26817902.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817881</id>
	<title>Re: Range types</title>
	<published>2009-12-16T12:24:36Z</published>
	<updated>2009-12-16T12:24:36Z</updated>
	<author>
		<name>Martijn van Oosterhout</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 10:57:19AM -0800, Scott Bailey wrote:
&lt;br&gt;&amp;gt; Ok, silly question here. But how do you determine the length of a &amp;nbsp;
&lt;br&gt;&amp;gt; continuous range? By definition length of [a, b) and (a, b] = b-a. But &amp;nbsp;
&lt;br&gt;&amp;gt; what about (a,b) and [a,b]? Are we saying that because they are &amp;nbsp;
&lt;br&gt;&amp;gt; continuous, the difference between values included in the range and &amp;nbsp;
&lt;br&gt;&amp;gt; those excluded are so infinitesimally small so as not to matter? Thus &amp;nbsp;
&lt;br&gt;&amp;gt; length (a,b) == length [a,b] == length [a,b)? And if that is the case, &amp;nbsp;
&lt;br&gt;&amp;gt; does the inclusiveness of the range really even matter?
&lt;br&gt;&lt;br&gt;Short answer: Yes
&lt;br&gt;&lt;br&gt;Longer answer: You need to decide on your definition of &amp;quot;length&amp;quot; and
&lt;br&gt;what you usually use is the &amp;quot;measure&amp;quot;. And yes, the difference between
&lt;br&gt;the two is so called &amp;quot;measure 0&amp;quot; and thus has no effect on the length.
&lt;br&gt;&lt;br&gt;Note the measure has to be done considering the intervals as intervals
&lt;br&gt;on a real line. The integers by themselves have no measure (they are
&lt;br&gt;countable). So for the &amp;quot;length&amp;quot; of a set of integers you might consider
&lt;br&gt;the count of the set.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://planetmath.org/encyclopedia/ProofThatTheOuterLebesgueMeasureOfAnIntervalIsItsLength.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://planetmath.org/encyclopedia/ProofThatTheOuterLebesgueMeasureOfAnIntervalIsItsLength.html&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Outer_measure&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Outer_measure&lt;/a&gt;&lt;br&gt;&lt;br&gt;As for &amp;quot;continuous&amp;quot;, as you use it above is not a way I recognise.
&lt;br&gt;There are contiguous sets, but they are something else.
&lt;br&gt;&lt;br&gt;Have a nice day,
&lt;br&gt;-- 
&lt;br&gt;Martijn van Oosterhout &amp;nbsp; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817881&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kleptog@...&lt;/a&gt;&amp;gt; &amp;nbsp; &lt;a href=&quot;http://svana.org/kleptog/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svana.org/kleptog/&lt;/a&gt;&lt;br&gt;&amp;gt; Please line up in a tree and maintain the heap invariant while 
&lt;br&gt;&amp;gt; boarding. Thank you for flying nlogn airlines.
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (196 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26817881/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26817881.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817822</id>
	<title>Re: Does &quot;verbose&quot; Need to be Reserved?</title>
	<published>2009-12-16T12:20:32Z</published>
	<updated>2009-12-16T12:20:32Z</updated>
	<author>
		<name>Andrew Gierth</name>
	</author>
	<content type="html">&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;David&amp;quot; == &amp;quot;David E Wheeler&amp;quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817822&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;david@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;&amp;nbsp;David&amp;gt; Hey All,
&lt;br&gt;&amp;nbsp;David&amp;gt; I was just getting a new version of pgTAP ready for release, and while testing it on HEAD, I got this error:
&lt;br&gt;&lt;br&gt;&amp;nbsp;David&amp;gt; + psql:pgtap.sql:5789: ERROR: &amp;nbsp;syntax error at end of input
&lt;br&gt;&amp;nbsp;David&amp;gt; + LINE 28: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF verbose THEN RETURN NEXT diag(tests[i] ||...
&lt;br&gt;&amp;nbsp;David&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;^
&lt;br&gt;&lt;br&gt;&amp;nbsp;David&amp;gt; I asked on IRC, and Andrew “RhodiumToad” Gierth pointed out
&lt;br&gt;&amp;nbsp;David&amp;gt; that it became a reserved word at some point. I'm fine to
&lt;br&gt;&amp;nbsp;David&amp;gt; rename my variable, but Andew and I were wondering if it's
&lt;br&gt;&amp;nbsp;David&amp;gt; really necessary for &amp;quot;verbose&amp;quot; to be reserved, since it's not
&lt;br&gt;&amp;nbsp;David&amp;gt; in the spec.
&lt;br&gt;&lt;br&gt;Looking at it more closely, this is likely to be fallout from the
&lt;br&gt;plpgsql lexer/parser changes; it probably worked before only because
&lt;br&gt;plpgsql was doing its own thing rather than using the main lexer.
&lt;br&gt;&lt;br&gt;VERBOSE has been reserved all along in order to distinguish 
&lt;br&gt;'vacuum verbose;' from 'vacuum tablename;' and so on; but it's still an
&lt;br&gt;interesting pitfall for plpgsql users.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Andrew (irc:RhodiumToad)
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817822&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Does-%22verbose%22-Need-to-be-Reserved--tp26817588p26817822.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817638</id>
	<title>Re: Range types</title>
	<published>2009-12-16T12:07:39Z</published>
	<updated>2009-12-16T12:07:39Z</updated>
	<author>
		<name>Martijn van Oosterhout</name>
	</author>
	<content type="html">On Tue, Dec 15, 2009 at 04:29:26PM -0800, Jeff Davis wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Tue, 2009-12-15 at 18:06 -0600, decibel wrote:
&lt;br&gt;&amp;gt; &amp;gt; Now that varlena's don't have an enormous fixed overhead, perhaps it's
&lt;br&gt;&amp;gt; &amp;gt; worth looking at using them. Obviously some operations would be
&lt;br&gt;&amp;gt; &amp;gt; slower, but for your stated examples of auditing and history, I
&lt;br&gt;&amp;gt; &amp;gt; suspect that you're not going to notice the overhead that much.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; For most varvarlena types, you only get stuck with the full alignment
&lt;br&gt;&amp;gt; burden if you get unlucky. In this case, we're moving from 16 bytes to
&lt;br&gt;&amp;gt; 17, which really means 24 bytes with alignment. Try creating two tables:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; create table foo(i int8, t1 timestamp, t2 timestamp);
&lt;br&gt;&amp;gt; &amp;nbsp; create table bar(i int8, c &amp;quot;char&amp;quot;, t1 timestamp, t2 timestamp);
&lt;/div&gt;&lt;/div&gt;But a period type will take just one or two more bytes if you don't
&lt;br&gt;require alignment. Alignment on a varlena type seems silly anyway,
&lt;br&gt;since you'll be aligning the header byte rather than the content.
&lt;br&gt;&lt;br&gt;In the implementation you may need to copy the content before
&lt;br&gt;processing to satisfy the alignment of the contained type, but that's
&lt;br&gt;just a SMOP.
&lt;br&gt;&lt;br&gt;Have a nice day,
&lt;br&gt;-- 
&lt;br&gt;Martijn van Oosterhout &amp;nbsp; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817638&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kleptog@...&lt;/a&gt;&amp;gt; &amp;nbsp; &lt;a href=&quot;http://svana.org/kleptog/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svana.org/kleptog/&lt;/a&gt;&lt;br&gt;&amp;gt; Please line up in a tree and maintain the heap invariant while 
&lt;br&gt;&amp;gt; boarding. Thank you for flying nlogn airlines.
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (196 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26817638/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26817638.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817588</id>
	<title>Does &quot;verbose&quot; Need to be Reserved?</title>
	<published>2009-12-16T12:05:10Z</published>
	<updated>2009-12-16T12:05:10Z</updated>
	<author>
		<name>David E. Wheeler</name>
	</author>
	<content type="html">Hey All,
&lt;br&gt;&lt;br&gt;I was just getting a new version of pgTAP ready for release, and while testing it on HEAD, I got this error:
&lt;br&gt;&lt;br&gt;+ psql:pgtap.sql:5789: ERROR: &amp;nbsp;syntax error at end of input
&lt;br&gt;+ LINE 28: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF verbose THEN RETURN NEXT diag(tests[i] ||...
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;^
&lt;br&gt;&lt;br&gt;I asked on IRC, and Andrew “RhodiumToad” Gierth pointed out that it became a reserved word at some point. I'm fine to rename my variable, but Andew and I were wondering if it's really necessary for &amp;quot;verbose&amp;quot; to be reserved, since it's not in the spec.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;&lt;br&gt;David
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817588&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Does-%22verbose%22-Need-to-be-Reserved--tp26817588p26817588.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817289</id>
	<title>Re: Range types</title>
	<published>2009-12-16T11:45:54Z</published>
	<updated>2009-12-16T11:45:54Z</updated>
	<author>
		<name>Alvaro Herrera-7</name>
	</author>
	<content type="html">&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817289&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tomas@...&lt;/a&gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; (and as Andrew Dunstan pointed out off-list: I was wrong with my bold
&lt;br&gt;&amp;gt; assertion that one can squeeze infinitely many (arbitrary length)
&lt;br&gt;&amp;gt; strings between two given. This is not always the case).
&lt;br&gt;&lt;br&gt;Of course you can do that if you assume lexicographical order, or any
&lt;br&gt;other arbitrary order. &amp;nbsp;The interesting point is whether there exists
&lt;br&gt;some ordering on which this does not happen. &amp;nbsp;And in fact there is:
&lt;br&gt;order strings by length first, and then lexicographically. &amp;nbsp;If you do
&lt;br&gt;this then you have next() and prev() for any given string. &amp;nbsp;If you use
&lt;br&gt;ASCII only, you have a.next = b, and so on.
&lt;br&gt;&lt;br&gt;There is the argument that some languages do not sort lexicographically
&lt;br&gt;but this is also besides the point -- you only need to find *some* way
&lt;br&gt;to sort the characters in the alphabet. &amp;nbsp;If you dictate that in your
&lt;br&gt;ordering &amp;quot;á&amp;quot; comes before &amp;quot;à&amp;quot; and both after &amp;quot;a&amp;quot;, and all of them before
&lt;br&gt;b, then you know that a.next = á and á.next = à and à.next = b. &amp;nbsp;(Note
&lt;br&gt;that I have also dictated that there is no other character that sorts
&lt;br&gt;after a and before b, which is perfectly possible because the alphabet
&lt;br&gt;is fixed for any given language. &amp;nbsp;You could use the complete list of
&lt;br&gt;characters coded in a given set of Unicode planes, or even extant all
&lt;br&gt;planes, to obtain the same result).
&lt;br&gt;&lt;br&gt;Defining strings with this ordering means you can have some useful
&lt;br&gt;ranges like [a-z], but then you cannot meaningfully use ranges for
&lt;br&gt;things like [aardvark - zulu] --- note that in this particular example,
&lt;br&gt;the order is reversed, because zulu comes before aardvark which is
&lt;br&gt;probably not what you want. &amp;nbsp; zzz.next = aaaa
&lt;br&gt;&lt;br&gt;In short, I think that while it is possible to define ranges of strings,
&lt;br&gt;it is not as useful as one would like.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Alvaro Herrera &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.CommandPrompt.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.CommandPrompt.com/&lt;/a&gt;&lt;br&gt;PostgreSQL Replication, Consulting, Custom Development, 24x7 support
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817289&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26817289.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817191</id>
	<title>Re: PATCH: Spurious &quot;22&quot; in hstore.sgml</title>
	<published>2009-12-16T11:39:14Z</published>
	<updated>2009-12-16T11:39:14Z</updated>
	<author>
		<name>Magnus Hagander-2</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 20:34, David E. Wheeler &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817191&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;david@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; *** a/doc/src/sgml/hstore.sgml
&lt;br&gt;&amp;gt; --- b/doc/src/sgml/hstore.sgml
&lt;br&gt;&lt;br&gt;Heh, interesting. That clearly shouldn't be there. Applied.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;&amp;nbsp;Magnus Hagander
&lt;br&gt;&amp;nbsp;Me: &lt;a href=&quot;http://www.hagander.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.hagander.net/&lt;/a&gt;&lt;br&gt;&amp;nbsp;Work: &lt;a href=&quot;http://www.redpill-linpro.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.redpill-linpro.com/&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817191&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/PATCH%3A-Spurious-%2222%22-in-hstore.sgml-tp26817113p26817191.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817151</id>
	<title>Re: Patch: Remove gcc dependency in definition of inline functions</title>
	<published>2009-12-16T11:36:47Z</published>
	<updated>2009-12-16T11:36:47Z</updated>
	<author>
		<name>Peter Eisentraut-2</name>
	</author>
	<content type="html">On ons, 2009-12-16 at 10:49 -0500, Tom Lane wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Marko Kreen &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817151&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;markokr@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; &amp;gt; So the plain-C89 compilers would be downgraded to &amp;quot;second-class&amp;quot;
&lt;br&gt;&amp;gt; &amp;gt; targets, not worth getting max performance out of them.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hm? &amp;nbsp;Failing to inline is already a performance hit, which is why
&lt;br&gt;&amp;gt; Kurt got interested in this in the first place.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I think you're way overthinking this. &amp;nbsp;Where we started was just
&lt;br&gt;&amp;gt; a proposal to try to expand the set of inline-ing compilers beyond
&lt;br&gt;&amp;gt; &amp;quot;gcc only&amp;quot;. &amp;nbsp;I don't see why we need to do anything but that. &amp;nbsp;The
&lt;br&gt;&amp;gt; code is fine as-is except for the control #ifdefs.
&lt;/div&gt;&lt;br&gt;I think the ifdefs should just be HAVE_INLINE &amp;&amp; !MSVC, right?
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817151&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Patch%3A-Remove-gcc-dependency-in-definition-of-inline-functions-tp26565034p26817151.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817113</id>
	<title>PATCH: Spurious &quot;22&quot; in hstore.sgml</title>
	<published>2009-12-16T11:34:33Z</published>
	<updated>2009-12-16T11:34:33Z</updated>
	<author>
		<name>David E. Wheeler</name>
	</author>
	<content type="html">*** a/doc/src/sgml/hstore.sgml
&lt;br&gt;--- b/doc/src/sgml/hstore.sgml
&lt;br&gt;***************
&lt;br&gt;*** 278,284 ****
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;entry&amp;gt;get &amp;lt;type&amp;gt;hstore&amp;lt;/&amp;gt;'s keys as a set&amp;lt;/entry&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;entry&amp;gt;&amp;lt;literal&amp;gt;skeys('a=&amp;gt;1,b=&amp;gt;2')&amp;lt;/literal&amp;gt;&amp;lt;/entry&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;entry&amp;gt;
&lt;br&gt;! 22&amp;lt;programlisting&amp;gt;
&lt;br&gt;&amp;nbsp; a
&lt;br&gt;&amp;nbsp; b
&lt;br&gt;&amp;nbsp; &amp;lt;/programlisting&amp;gt;&amp;lt;/entry&amp;gt;
&lt;br&gt;--- 278,284 ----
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;entry&amp;gt;get &amp;lt;type&amp;gt;hstore&amp;lt;/&amp;gt;'s keys as a set&amp;lt;/entry&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;entry&amp;gt;&amp;lt;literal&amp;gt;skeys('a=&amp;gt;1,b=&amp;gt;2')&amp;lt;/literal&amp;gt;&amp;lt;/entry&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;entry&amp;gt;
&lt;br&gt;! &amp;lt;programlisting&amp;gt;
&lt;br&gt;&amp;nbsp; a
&lt;br&gt;&amp;nbsp; b
&lt;br&gt;&amp;nbsp; &amp;lt;/programlisting&amp;gt;&amp;lt;/entry&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817113&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/PATCH%3A-Spurious-%2222%22-in-hstore.sgml-tp26817113p26817113.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817042</id>
	<title>Re: Range types</title>
	<published>2009-12-16T11:29:55Z</published>
	<updated>2009-12-16T11:29:55Z</updated>
	<author>
		<name>Jeff Davis-8</name>
	</author>
	<content type="html">On Wed, 2009-12-16 at 12:50 -0500, Tom Lane wrote:
&lt;br&gt;&amp;gt; I'm still not exactly clear on what the use-case is for discrete
&lt;br&gt;&amp;gt; timestamp ranges, and I wonder how many people are going to be happy
&lt;br&gt;&amp;gt; with a representation that can't handle a range that's open-ended
&lt;br&gt;&amp;gt; on the left.
&lt;br&gt;&lt;br&gt;Huh? We're miscommunicating somewhere. Discrete ranges are values, and
&lt;br&gt;those values can be displayed a number of different ways. That's one of
&lt;br&gt;the biggest advantages.
&lt;br&gt;&lt;br&gt;The very same discrete range can be displayed as open-open, closed-open,
&lt;br&gt;open-closed, or closed-closed. There are edge cases, like how infinity
&lt;br&gt;is never closed, and overflow conditions. But generally speaking, you
&lt;br&gt;have more options for presenting a discrete range than a continuous
&lt;br&gt;range.
&lt;br&gt;&lt;br&gt;The range [5, 7) is equal to the set {5, 6} and equal to the ranges:
&lt;br&gt;(4,7), (4,6], [5,7), and [5,6]. One application can insert it as [5,7)
&lt;br&gt;and another can read it as (4,6].
&lt;br&gt;&lt;br&gt;That's the use case: the application's preferences don't have to match.
&lt;br&gt;It's OK to mix various representation preferences, because you can
&lt;br&gt;convert between them. The on disk format happens to hint at one
&lt;br&gt;particular canonical form, but doesn't enforce that on anyone.
&lt;br&gt;&lt;br&gt;&amp;gt; Huh? &amp;nbsp;You're not going to be able to have a special case data
&lt;br&gt;&amp;gt; representation for one or two data types at the same time as you have a
&lt;br&gt;&amp;gt; function-based datatype-independent concept of a parameterized range
&lt;br&gt;&amp;gt; type. &amp;nbsp;Well, maybe you could have special code paths for just date and
&lt;br&gt;&amp;gt; timestamp but it'd be horrid.
&lt;br&gt;&lt;br&gt;They aren't supposed to be exactly the same API, I said that from the
&lt;br&gt;start. There are API differences between continuous and discrete ranges,
&lt;br&gt;and we shouldn't ignore them.
&lt;br&gt;&lt;br&gt;One important differences is that (barring overflow conditions and
&lt;br&gt;special values) prior, first, last, and next are defined for all
&lt;br&gt;discrete range values, but not for all continuous range values.
&lt;br&gt;&lt;br&gt;For instance, the discrete range [5,7) has prior=4, first=5, last=6,
&lt;br&gt;next=7.
&lt;br&gt;&lt;br&gt;Whereas the continuous range [5,7) has prior=undef, first=5, last=undef,
&lt;br&gt;next=7.
&lt;br&gt;&lt;br&gt;We could define one API, that treats discrete and continuous ranges
&lt;br&gt;differently. But you'll never be able to transform a continuous range to
&lt;br&gt;a different representation, while you can do so with a discrete range.
&lt;br&gt;&lt;br&gt;&amp;gt; More importantly, the notion of a representation granule is still 100%
&lt;br&gt;&amp;gt; wishful thinking for any inexact-representation datatype, which is going
&lt;br&gt;&amp;gt; to be a severe crimp in getting this accepted for timestamp, let alone
&lt;br&gt;&amp;gt; defining it in a way that would allow users to try to apply it to
&lt;br&gt;&amp;gt; floats. &amp;nbsp;Float timestamps might not be the default case anymore but they
&lt;br&gt;&amp;gt; are still supported.
&lt;br&gt;&lt;br&gt;If the only objection is that a superuser can confuse the system by
&lt;br&gt;poorly defining a range type on a non-default build, I think that
&lt;br&gt;objection can be overcome.
&lt;br&gt;&lt;br&gt;&amp;gt; I think you should let go of the feeling that you have to shave bytes
&lt;br&gt;&amp;gt; off the storage format. &amp;nbsp;You're creating a whole lot of work for
&lt;br&gt;&amp;gt; yourself and a whole lot of user-visible corner cases in return for
&lt;br&gt;&amp;gt; what ultimately isn't much.
&lt;br&gt;&lt;br&gt;This isn't just to shave bytes. It's also because I like the semantics
&lt;br&gt;of discrete ranges for many cases.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Jeff Davis
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817042&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26817042.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817008</id>
	<title>pinging Dano</title>
	<published>2009-12-16T11:28:26Z</published>
	<updated>2009-12-16T11:28:26Z</updated>
	<author>
		<name>Markus Wanner-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;who is the main editor named &amp;quot;Dano&amp;quot; of the wiki page about Parallel 
&lt;br&gt;Query Execution 
&lt;br&gt;(&lt;a href=&quot;http://wiki.postgresql.org/wiki/Parallel_Query_Execution&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.postgresql.org/wiki/Parallel_Query_Execution&lt;/a&gt;), please speak up.
&lt;br&gt;&lt;br&gt;Is there any code or patch available ATM? What &amp;quot;discussion with Tom and 
&lt;br&gt;Simon&amp;quot; is that page referring to?
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;&lt;br&gt;Markus Wanner
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817008&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/pinging-Dano-tp26817008p26817008.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817000</id>
	<title>PATCH: Add hstore_to_json()</title>
	<published>2009-12-16T11:28:09Z</published>
	<updated>2009-12-16T11:28:09Z</updated>
	<author>
		<name>David E. Wheeler</name>
	</author>
	<content type="html">I just realized that this was easy to do, and despite my complete lack of C skillz was able to throw this together in a couple of hours. It might be handy to some, though the possible downsides are:
&lt;br&gt;&lt;br&gt;* No json_to_hstore().
&lt;br&gt;* Leads to requests for hstore_to_yaml(), hstore_to_xml(), etc.
&lt;br&gt;* Andrew Gierth said “no” when I suggested it.
&lt;br&gt;&lt;br&gt;But it's kind of handy, too. Thoughts?
&lt;br&gt;&lt;br&gt;Best,
&lt;br&gt;&lt;br&gt;David
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817000&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;hstore_to_json.patch&lt;/strong&gt; (7K) &lt;a href=&quot;http://old.nabble.com/attachment/26817000/0/hstore_to_json.patch&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/PATCH%3A-Add-hstore_to_json%28%29-tp26817000p26817000.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816960</id>
	<title>Re: Range types</title>
	<published>2009-12-16T11:25:12Z</published>
	<updated>2009-12-16T11:25:12Z</updated>
	<author>
		<name>Jeff Davis-8</name>
	</author>
	<content type="html">On Wed, 2009-12-16 at 12:42 -0500, Robert Haas wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Wed, Dec 16, 2009 at 12:31 PM, Jeff Davis &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816960&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; There's one problem, and that's for timestamptz ranges with intervals
&lt;br&gt;&amp;gt; &amp;gt; that include days and months. Timezone adjustments are just not
&lt;br&gt;&amp;gt; &amp;gt; well-defined for that kind of granule (nor would it be particularly
&lt;br&gt;&amp;gt; &amp;gt; useful even if it magically worked), so this would have to be blocked
&lt;br&gt;&amp;gt; &amp;gt; somehow. I think that's a special case, and we could provide the user
&lt;br&gt;&amp;gt; &amp;gt; with a nice error message telling the user to use a date or timestamp
&lt;br&gt;&amp;gt; &amp;gt; range instead.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This seems like a fairly special-purpose type. &amp;nbsp;You'd be targeting it
&lt;br&gt;&amp;gt; at people who are very concerned with storing large numbers of these
&lt;br&gt;&amp;gt; (so they really care about space consumption) but for some reason
&lt;br&gt;&amp;gt; don't need to mix days and months (actually, the current interval
&lt;br&gt;&amp;gt; representation stores days, months, and seconds separately). &amp;nbsp;I
&lt;br&gt;&amp;gt; certainly think this might be useful to some people but it doesn't
&lt;br&gt;&amp;gt; really sounds like a general range type facility, since it seems to
&lt;br&gt;&amp;gt; involve some hacks that are fairly datatype-specific.
&lt;/div&gt;&lt;br&gt;My statement should have read &amp;quot;days or months&amp;quot;. In other words, you
&lt;br&gt;can't have a timestamptz range with a granularity of '3 days'. But if
&lt;br&gt;that's your granularity, as Scott says, you should be using a date
&lt;br&gt;range, not a timestamptz range.
&lt;br&gt;&lt;br&gt;Timestamptz ranges are only really useful when you have a granularity
&lt;br&gt;measured in seconds (or some fraction or multiple thereof). Otherwise,
&lt;br&gt;the timezone adjustment doesn't make any sense.
&lt;br&gt;&lt;br&gt;So this isn't a case of limited functionality, just that we need to
&lt;br&gt;inform the user that a timestamptz range with granularity '1 day' or '1
&lt;br&gt;month' makes no sense.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Jeff Davis
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816960&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26816960.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816904</id>
	<title>Re: XLogInsert</title>
	<published>2009-12-16T11:14:21Z</published>
	<updated>2009-12-16T11:14:21Z</updated>
	<author>
		<name>Andres Freund</name>
	</author>
	<content type="html">On Wednesday 16 December 2009 20:07:07 Gurjeet Singh wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 2009/12/15 Greg Smith &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816904&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;greg@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Jaime Casanova wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; So in this extreme case avg tps is just 6 transactions better
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Great job trying to find the spot where the code worked better. &amp;nbsp;I'm not
&lt;br&gt;&amp;gt; &amp;gt; so sure I trust pgbench results where the TPS was so low though. &amp;nbsp;Which
&lt;br&gt;&amp;gt; &amp;gt; leads us right back to exactly how Jeff measured his original results.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; As I said already, I think we need more insight into Jeff's performance
&lt;br&gt;&amp;gt; &amp;gt; report, a way to replicate that test, to look a bit at the latency as
&lt;br&gt;&amp;gt; &amp;gt; reported by the updated LWLock patch that Pierre submitted. &amp;nbsp;Tweaking
&lt;br&gt;&amp;gt; &amp;gt; your test to give more useful results is a nice second opinion on top of
&lt;br&gt;&amp;gt; &amp;gt; that. But we're out of time for now, so this patch is getting returned
&lt;br&gt;&amp;gt; &amp;gt; with feedback. &amp;nbsp;I encourage Jeff to resubmit the same patch or a better
&lt;br&gt;&amp;gt; &amp;gt; one with a little more data on performance measurements to our final 8.5
&lt;br&gt;&amp;gt; &amp;gt; CommitFest in hopes we can confirm this an improvement worth committing.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Last week I worked on a FUSE based filesystem, which I call BlackholeFS.
&lt;br&gt;&amp;gt; &amp;nbsp;Its similar to /dev/null, but for directories. Basically it simply returns
&lt;br&gt;&amp;gt; &amp;nbsp;success for all the writes, but doesn't do any writes on the files under
&lt;br&gt;&amp;gt; &amp;nbsp;it.
&lt;/div&gt;I doubt that it will be faster than a tmpfs - the additional context switches 
&lt;br&gt;et al probably will hurt already.
&lt;br&gt;If you constrain the checkpoint_segments to something sensible it shouldnt use 
&lt;br&gt;too much memory.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Andres
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816904&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/XLogInsert-tp25047407p26816904.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816660</id>
	<title>Re: XLogInsert</title>
	<published>2009-12-16T11:07:07Z</published>
	<updated>2009-12-16T11:07:07Z</updated>
	<author>
		<name>singh.gurjeet</name>
	</author>
	<content type="html">&lt;div dir=&quot;ltr&quot;&gt;&lt;div class=&quot;gmail_quote&quot;&gt;2009/12/15 Greg Smith &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816660&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;greg@...&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;div class=&quot;im&quot;&gt;Jaime Casanova wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
So in this extreme case avg tps is just 6 transactions better&lt;br&gt;
  &lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;
Great job trying to find the spot where the code worked better.  I&amp;#39;m not so sure I trust pgbench results where the TPS was so low though.  Which leads us right back to exactly how Jeff measured his original results.&lt;br&gt;

&lt;br&gt;
As I said already, I think we need more insight into Jeff&amp;#39;s performance report, a way to replicate that test, to look a bit at the latency as reported by the updated LWLock patch that Pierre submitted.  Tweaking your test to give more useful results is a nice second opinion on top of that.  But we&amp;#39;re out of time for now, so this patch is getting returned with feedback.  I encourage Jeff to resubmit the same patch or a better one with a little more data on performance measurements to our final 8.5 CommitFest in hopes we can confirm this an improvement worth committing.&lt;div class=&quot;im&quot;&gt;
&lt;br&gt;
&lt;/div&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Last week I worked on a FUSE based filesystem, which I call BlackholeFS. Its similar to /dev/null, but for directories. Basically it simply returns success for all the writes, but doesn&amp;#39;t do any writes on the files under it.&lt;br&gt;
&lt;br&gt;Would moving the pg_xlog/ (and possibly table data too) to such a filesystem exercise this patch better?&lt;br&gt;&lt;br&gt;Best regards,&lt;br&gt;&lt;/div&gt;&lt;/div&gt;-- &lt;br&gt;Lets call it Postgres&lt;br&gt;&lt;br&gt;EnterpriseDB      &lt;a href=&quot;http://www.enterprisedb.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.enterprisedb.com&lt;/a&gt;&lt;br&gt;
&lt;br&gt;gurjeet[.singh]@EnterpriseDB.com&lt;br&gt;&lt;br&gt;singh.gurjeet@{ gmail | hotmail | indiatimes | yahoo }.com&lt;br&gt;Twitter: singh_gurjeet&lt;br&gt;Skype: singh_gurjeet&lt;br&gt;&lt;br&gt;Mail sent from my BlackLaptop device&lt;br&gt;
&lt;/div&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/XLogInsert-tp25047407p26816660.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816535</id>
	<title>Re: Range types</title>
	<published>2009-12-16T10:59:02Z</published>
	<updated>2009-12-16T10:59:02Z</updated>
	<author>
		<name>Tom Lane-2</name>
	</author>
	<content type="html">Scott Bailey &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816535&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;artacus@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; As I pointed out off-list, I think the granularity for timestamp range 
&lt;br&gt;&amp;gt; should be limited to hours and smaller. Anything larger is asking for 
&lt;br&gt;&amp;gt; trouble. And quite honestly if they wanted day granularity, they should 
&lt;br&gt;&amp;gt; use date range.
&lt;br&gt;&lt;br&gt;I'm still not real clear on what the expected use-case is for this.
&lt;br&gt;You're evidently envisioning applications where the allowed form of
&lt;br&gt;an interval is constrained, but in the cases I can think of, the
&lt;br&gt;constraints are a lot more convoluted than what you're proposing.
&lt;br&gt;For example, if you're trying to do classroom scheduling, it might be
&lt;br&gt;useful to constrain the periods to start and end on hour boundaries
&lt;br&gt;--- but the next thing you'll want is to have it know that the &amp;quot;next&amp;quot;
&lt;br&gt;slot after 5pm Friday is 8am Monday. &amp;nbsp;Except on holidays. &amp;nbsp;And then
&lt;br&gt;there's the fact that my alma mater starts most hour-long classes on
&lt;br&gt;the half hour.
&lt;br&gt;&lt;br&gt;I think that wiring such constraints into the low-level datatype is
&lt;br&gt;doomed to failure. &amp;nbsp;What you'd be better off with is a function that
&lt;br&gt;finds the &amp;quot;next&amp;quot; period given a current period and some suitable
&lt;br&gt;representation of the off-limits intervals. &amp;nbsp;The argument for having
&lt;br&gt;granularity wired into the datatype seems to boil down to just space
&lt;br&gt;savings. &amp;nbsp;I don't find that compelling enough to justify code
&lt;br&gt;contortions and user-visible restrictions on functionality.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; regards, tom lane
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816535&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26816535.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816497</id>
	<title>Re: Range types</title>
	<published>2009-12-16T10:57:19Z</published>
	<updated>2009-12-16T10:57:19Z</updated>
	<author>
		<name>Scott Bailey-2</name>
	</author>
	<content type="html">Ok, silly question here. But how do you determine the length of a 
&lt;br&gt;continuous range? By definition length of [a, b) and (a, b] = b-a. But 
&lt;br&gt;what about (a,b) and [a,b]? Are we saying that because they are 
&lt;br&gt;continuous, the difference between values included in the range and 
&lt;br&gt;those excluded are so infinitesimally small so as not to matter? Thus 
&lt;br&gt;length (a,b) == length [a,b] == length [a,b)? And if that is the case, 
&lt;br&gt;does the inclusiveness of the range really even matter?
&lt;br&gt;&lt;br&gt;And can anyone point me to a reference for working with continuous 
&lt;br&gt;ranges? Google just insists that I spelled contiguous wrong.
&lt;br&gt;&lt;br&gt;Scott
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816497&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26816497.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816082</id>
	<title>Re: Update on true serializable techniques in MVCC</title>
	<published>2009-12-16T10:30:19Z</published>
	<updated>2009-12-16T10:30:19Z</updated>
	<author>
		<name>Kevin Grittner</name>
	</author>
	<content type="html">Alvaro Herrera &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816082&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;alvherre@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;gt; So you'd have to disable HOT updates when true serializability was
&lt;br&gt;&amp;gt; active?
&lt;br&gt;&amp;nbsp;
&lt;br&gt;I wouldn't think so; but someone familiar with HOT logic could
&lt;br&gt;probably determine whether the unmodified algorithm could be used by
&lt;br&gt;reviewing the &amp;quot;simplifying assumptions&amp;quot; near the bottom of page 42,
&lt;br&gt;and the page about &amp;quot;Generalizing to other database engines&amp;quot; (section
&lt;br&gt;4.8). &amp;nbsp;I think those portions might stand on their own without
&lt;br&gt;reading the rest of the document.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-Kevin
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816082&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Update-on-true-serializable-techniques-in-MVCC-tp26799919p26816082.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816071</id>
	<title>Re: Update on true serializable techniques in MVCC</title>
	<published>2009-12-16T10:29:43Z</published>
	<updated>2009-12-16T10:29:43Z</updated>
	<author>
		<name>Boszormenyi Zoltan</name>
	</author>
	<content type="html">Robert Haas írta:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Wed, Dec 16, 2009 at 1:25 PM, Robert Haas &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816071&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;robertmhaas@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt; On Wed, Dec 16, 2009 at 1:14 PM, Alvaro Herrera
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816071&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;alvherre@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Robert Haas escribió:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Wed, Dec 16, 2009 at 10:29 AM, Andres Freund &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816071&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andres@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Wednesday 16 December 2009 16:24:42 Robert Haas wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; Inserts and deletes follow the same protocol, obtaining an exclusive
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; lock on the row after the one being inserted or deleted. The result
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; of this locking protocol is that a range scan prevents concurrent
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; inserts or delete within the range of the scan, and vice versa.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; That sounds like it should actually work.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Only if you can guarantee that the database will access the rows using
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; some particular index. &amp;nbsp;If it gets to the data some other way it might
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; accidentally circumvent the lock. &amp;nbsp;That's kind of a killer in terms of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; making this work for PostgreSQL.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Isnt the whole topic only relevant for writing access? There you have to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; access the index anyway.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Yeah, I guess you have to insert the new tuple. &amp;nbsp;I guess while you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; were at it you might check whether the next tuple is locked...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; So you'd have to disable HOT updates when true serializability was
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; active?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt; I thought about that, but I don't think so. &amp;nbsp; HOT only applies to
&lt;br&gt;&amp;gt;&amp;gt; updates, and predicate locking only applies to inserts. &amp;nbsp;Unless I have
&lt;br&gt;&amp;gt;&amp;gt; my head in the sand?
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Err, no, wait. &amp;nbsp;Predicate locking can apply to updates, but since HOT
&lt;br&gt;&amp;gt; updates never update an indexed column, I think we might still be OK?
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;/div&gt;&lt;br&gt;A predicate can include columns from an index plus others.
&lt;br&gt;Am I missing something?
&lt;br&gt;&lt;br&gt;&amp;gt; ...Robert
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Bible has answers for everything. Proof:
&lt;br&gt;&amp;quot;But let your communication be, Yea, yea; Nay, nay: for whatsoever is more
&lt;br&gt;than these cometh of evil.&amp;quot; (Matthew 5:37) - basics of digital technology.
&lt;br&gt;&amp;quot;May your kingdom come&amp;quot; - superficial description of plate tectonics
&lt;br&gt;&lt;br&gt;----------------------------------
&lt;br&gt;Zoltán Böszörményi
&lt;br&gt;Cybertec Schönig &amp; Schönig GmbH
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.at/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.at/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816071&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Update-on-true-serializable-techniques-in-MVCC-tp26799919p26816071.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816023</id>
	<title>Re: Update on true serializable techniques in MVCC</title>
	<published>2009-12-16T10:27:08Z</published>
	<updated>2009-12-16T10:27:08Z</updated>
	<author>
		<name>Robert Haas</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 1:25 PM, Robert Haas &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816023&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;robertmhaas@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Wed, Dec 16, 2009 at 1:14 PM, Alvaro Herrera
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816023&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;alvherre@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; Robert Haas escribió:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Wed, Dec 16, 2009 at 10:29 AM, Andres Freund &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816023&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andres@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Wednesday 16 December 2009 16:24:42 Robert Haas wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   Inserts and deletes follow the same protocol, obtaining an exclusive
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   lock on the row after the one being inserted or deleted. The result
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   of this locking protocol is that a range scan prevents concurrent
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   inserts or delete within the range of the scan, and vice versa.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; That sounds like it should actually work.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Only if you can guarantee that the database will access the rows using
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; some particular index.  If it gets to the data some other way it might
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; accidentally circumvent the lock.  That's kind of a killer in terms of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; making this work for PostgreSQL.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Isnt the whole topic only relevant for writing access? There you have to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; access the index anyway.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Yeah, I guess you have to insert the new tuple.  I guess while you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; were at it you might check whether the next tuple is locked...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; So you'd have to disable HOT updates when true serializability was
&lt;br&gt;&amp;gt;&amp;gt; active?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I thought about that, but I don't think so.   HOT only applies to
&lt;br&gt;&amp;gt; updates, and predicate locking only applies to inserts.  Unless I have
&lt;br&gt;&amp;gt; my head in the sand?
&lt;/div&gt;&lt;br&gt;Err, no, wait. &amp;nbsp;Predicate locking can apply to updates, but since HOT
&lt;br&gt;updates never update an indexed column, I think we might still be OK?
&lt;br&gt;&lt;br&gt;...Robert
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816023&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Update-on-true-serializable-techniques-in-MVCC-tp26799919p26816023.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26815987</id>
	<title>Re: Update on true serializable techniques in MVCC</title>
	<published>2009-12-16T10:25:48Z</published>
	<updated>2009-12-16T10:25:48Z</updated>
	<author>
		<name>Robert Haas</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 1:14 PM, Alvaro Herrera
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26815987&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;alvherre@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Robert Haas escribió:
&lt;br&gt;&amp;gt;&amp;gt; On Wed, Dec 16, 2009 at 10:29 AM, Andres Freund &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26815987&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andres@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; On Wednesday 16 December 2009 16:24:42 Robert Haas wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   Inserts and deletes follow the same protocol, obtaining an exclusive
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   lock on the row after the one being inserted or deleted. The result
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   of this locking protocol is that a range scan prevents concurrent
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   inserts or delete within the range of the scan, and vice versa.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; That sounds like it should actually work.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Only if you can guarantee that the database will access the rows using
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; some particular index.  If it gets to the data some other way it might
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; accidentally circumvent the lock.  That's kind of a killer in terms of
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; making this work for PostgreSQL.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; Isnt the whole topic only relevant for writing access? There you have to
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; access the index anyway.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Yeah, I guess you have to insert the new tuple.  I guess while you
&lt;br&gt;&amp;gt;&amp;gt; were at it you might check whether the next tuple is locked...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So you'd have to disable HOT updates when true serializability was
&lt;br&gt;&amp;gt; active?
&lt;/div&gt;&lt;br&gt;I thought about that, but I don't think so. &amp;nbsp; HOT only applies to
&lt;br&gt;updates, and predicate locking only applies to inserts. &amp;nbsp;Unless I have
&lt;br&gt;my head in the sand?
&lt;br&gt;&lt;br&gt;...Robert
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26815987&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Update-on-true-serializable-techniques-in-MVCC-tp26799919p26815987.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26815920</id>
	<title>Re: Range types</title>
	<published>2009-12-16T10:21:43Z</published>
	<updated>2009-12-16T10:21:43Z</updated>
	<author>
		<name>Scott Bailey-2</name>
	</author>
	<content type="html">Tom Lane wrote:
&lt;br&gt;&amp;gt; Jeff Davis &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26815920&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt;&amp;gt; [ hacky special-case representation for discrete timestamp ranges ]
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I'm still not exactly clear on what the use-case is for discrete
&lt;br&gt;&amp;gt; timestamp ranges, and I wonder how many people are going to be happy
&lt;br&gt;&amp;gt; with a representation that can't handle a range that's open-ended
&lt;br&gt;&amp;gt; on the left.
&lt;br&gt;&lt;br&gt;They wouldn't. But the timestamp data would be the anchor, not 
&lt;br&gt;necessarily the start point. As long as we ranges unbounded on both ends 
&lt;br&gt;we'd be ok.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26815920&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Range-types-tp26774047p26815920.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26815820</id>
	<title>Re: Update on true serializable techniques in MVCC</title>
	<published>2009-12-16T10:14:22Z</published>
	<updated>2009-12-16T10:14:22Z</updated>
	<author>
		<name>Alvaro Herrera-7</name>
	</author>
	<content type="html">Robert Haas escribió:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Wed, Dec 16, 2009 at 10:29 AM, Andres Freund &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26815820&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andres@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; On Wednesday 16 December 2009 16:24:42 Robert Haas wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   Inserts and deletes follow the same protocol, obtaining an exclusive
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   lock on the row after the one being inserted or deleted. The result
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   of this locking protocol is that a range scan prevents concurrent
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;   inserts or delete within the range of the scan, and vice versa.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; That sounds like it should actually work.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Only if you can guarantee that the database will access the rows using
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; some particular index.  If it gets to the data some other way it might
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; accidentally circumvent the lock.  That's kind of a killer in terms of
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; making this work for PostgreSQL.
&lt;br&gt;&amp;gt; &amp;gt; Isnt the whole topic only relevant for writing access? There you have to
&lt;br&gt;&amp;gt; &amp;gt; access the index anyway.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Yeah, I guess you have to insert the new tuple. &amp;nbsp;I guess while you
&lt;br&gt;&amp;gt; were at it you might check whether the next tuple is locked...
&lt;/div&gt;&lt;br&gt;So you'd have to disable HOT updates when true serializability was
&lt;br&gt;active?
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Alvaro Herrera &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.CommandPrompt.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.CommandPrompt.com/&lt;/a&gt;&lt;br&gt;The PostgreSQL Company - Command Prompt, Inc.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sent via pgsql-hackers mailing list (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26815820&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgsql-hackers@...&lt;/a&gt;)
&lt;br&gt;To make changes to your subscription:
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/mailpref/pgsql-hackers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/mailpref/pgsql-hackers&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Update-on-true-serializable-techniques-in-MVCC-tp26799919p26815820.html" />
</entry>

</feed>
