Thread: Re: Null-safe GiST interface (proposal)
Oleg Bartunov <oleg@sai.msu.su> writes: > 2. For union and picksplit we propose to clean up NULLs from array of > keys, so support of arguments 'passed-by-value' will not require > changes of user interface. It would require some modification of current > algorithm of splitting, but this wouldn't be a complex task for us. Seems reasonable. Would there ever be a union or picksplit method that would want to do anything with nulls except ignore them? I can't think of a reason to do differently, so you're just centralizing the logic to ignore nulls in these methods. regards, tom lane
Hi, please apply patch to current CVS which implements: 1. null-safe interface to GiST (as proposed in http://fts.postgresql.org/db/mw/msg.html?mid=1028327) 2. support for 'pass-by-value' arguments - to test this we used special opclass for int4 with values in range [0-2^15] More testing will be done after resolving problem with index_formtuple and implementation of B-tree using GiST 3. small patch to contrib modules (seg,cube,rtree_gist,intarray) - mark functions as 'isstrict' where needed. Patch was intensively tested (attached test.tgz contains test suite): This is a generic test suite for GiST (7.2): 1. tests GiST multi-key indexes 2. tests null-safe interface to GiST (see proposal http://fts.postgresql.org/db/mw/msg.html?mid=1028327) USAGE: Create db and install contrib modules: intarray, rtree_gist, seg, cube. Edit gen.pl for $pgsqlsrc % perl gen.pl > /tmp/data % psql TESTDB < test.sql Regards, Oleg On Fri, 3 Aug 2001, Tom Lane wrote: > Oleg Bartunov <oleg@sai.msu.su> writes: > > 2. For union and picksplit we propose to clean up NULLs from array of > > keys, so support of arguments 'passed-by-value' will not require > > changes of user interface. It would require some modification of current > > algorithm of splitting, but this wouldn't be a complex task for us. > > Seems reasonable. Would there ever be a union or picksplit method that > would want to do anything with nulls except ignore them? I can't think > of a reason to do differently, so you're just centralizing the logic to > ignore nulls in these methods. > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster > Regards, Oleg _____________________________________________________________ Oleg Bartunov, sci.researcher, hostmaster of AstroNet, Sternberg Astronomical Institute, Moscow University (Russia) Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(095)939-16-83, +007(095)939-23-83
Your patch has been added to the PostgreSQL unapplied patches list at: http://candle.pha.pa.us/cgi-bin/pgpatches I will try to apply it within the next 48 hours. > Hi, > > please apply patch to current CVS which implements: > > 1. null-safe interface to GiST > (as proposed in http://fts.postgresql.org/db/mw/msg.html?mid=1028327) > > 2. support for 'pass-by-value' arguments - to test this > we used special opclass for int4 with values in range [0-2^15] > More testing will be done after resolving problem with > index_formtuple and implementation of B-tree using GiST > > 3. small patch to contrib modules (seg,cube,rtree_gist,intarray) - > mark functions as 'isstrict' where needed. > > Patch was intensively tested (attached test.tgz contains test suite): > > This is a generic test suite for GiST (7.2): > > 1. tests GiST multi-key indexes > 2. tests null-safe interface to GiST > (see proposal http://fts.postgresql.org/db/mw/msg.html?mid=1028327) > > USAGE: > > Create db and install contrib modules: intarray, rtree_gist, seg, cube. > Edit gen.pl for $pgsqlsrc > % perl gen.pl > /tmp/data > % psql TESTDB < test.sql > > > Regards, > Oleg > > > > On Fri, 3 Aug 2001, Tom Lane wrote: > > > Oleg Bartunov <oleg@sai.msu.su> writes: > > > 2. For union and picksplit we propose to clean up NULLs from array of > > > keys, so support of arguments 'passed-by-value' will not require > > > changes of user interface. It would require some modification of current > > > algorithm of splitting, but this wouldn't be a complex task for us. > > > > Seems reasonable. Would there ever be a union or picksplit method that > > would want to do anything with nulls except ignore them? I can't think > > of a reason to do differently, so you're just centralizing the logic to > > ignore nulls in these methods. > > > > regards, tom lane > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 4: Don't 'kill -9' the postmaster > > > > Regards, > Oleg > _____________________________________________________________ > Oleg Bartunov, sci.researcher, hostmaster of AstroNet, > Sternberg Astronomical Institute, Moscow University (Russia) > Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ > phone: +007(095)939-16-83, +007(095)939-23-83 Content-Description: [ Attachment, skipping... ] Content-Description: [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
Main patch applied. I did not apply the test code patch. Thanks. > Hi, > > please apply patch to current CVS which implements: > > 1. null-safe interface to GiST > (as proposed in http://fts.postgresql.org/db/mw/msg.html?mid=1028327) > > 2. support for 'pass-by-value' arguments - to test this > we used special opclass for int4 with values in range [0-2^15] > More testing will be done after resolving problem with > index_formtuple and implementation of B-tree using GiST > > 3. small patch to contrib modules (seg,cube,rtree_gist,intarray) - > mark functions as 'isstrict' where needed. > > Patch was intensively tested (attached test.tgz contains test suite): > > This is a generic test suite for GiST (7.2): > > 1. tests GiST multi-key indexes > 2. tests null-safe interface to GiST > (see proposal http://fts.postgresql.org/db/mw/msg.html?mid=1028327) > > USAGE: > > Create db and install contrib modules: intarray, rtree_gist, seg, cube. > Edit gen.pl for $pgsqlsrc > % perl gen.pl > /tmp/data > % psql TESTDB < test.sql > > > Regards, > Oleg > > > > On Fri, 3 Aug 2001, Tom Lane wrote: > > > Oleg Bartunov <oleg@sai.msu.su> writes: > > > 2. For union and picksplit we propose to clean up NULLs from array of > > > keys, so support of arguments 'passed-by-value' will not require > > > changes of user interface. It would require some modification of current > > > algorithm of splitting, but this wouldn't be a complex task for us. > > > > Seems reasonable. Would there ever be a union or picksplit method that > > would want to do anything with nulls except ignore them? I can't think > > of a reason to do differently, so you're just centralizing the logic to > > ignore nulls in these methods. > > > > regards, tom lane > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 4: Don't 'kill -9' the postmaster > > > > Regards, > Oleg > _____________________________________________________________ > Oleg Bartunov, sci.researcher, hostmaster of AstroNet, > Sternberg Astronomical Institute, Moscow University (Russia) > Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ > phone: +007(095)939-16-83, +007(095)939-23-83 Content-Description: [ Attachment, skipping... ] Content-Description: [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026