Fujii Masao
masao****@gmail*****
2015年 8月 5日 (水) 19:51:00 JST
On Wed, Aug 5, 2015 at 12:29 PM, Fujii Masao <masao****@gmail*****> wrote: > On Wed, Aug 5, 2015 at 2:43 AM, Masahiko Sawada <sawad****@gmail*****> wrote: >> On Tue, Aug 4, 2015 at 1:56 AM, Fujii Masao <masao****@gmail*****> wrote: >>> On Fri, Jul 31, 2015 at 10:13 PM, Fujii Masao <masao****@gmail*****> wrote: >>>> On Fri, Jul 31, 2015 at 2:32 PM, Masahiko Sawada <sawad****@gmail*****> wrote: >>>>> On Thu, Jul 30, 2015 at 12:34 PM, Fujii Masao <masao****@gmail*****> wrote: >>>>>> On Wed, Jul 29, 2015 at 1:56 AM, Sawada Masahiko <sawad****@gmail*****> wrote: >>>>>>> On Tue, Jul 28, 2015 at 11:29 PM, Fujii Masao <masao****@gmail*****> wrote: >>>>>>>> On Fri, Jul 24, 2015 at 11:34 PM, Fujii Masao <masao****@gmail*****> wrote: >>>>>>>>> On Fri, Jul 24, 2015 at 8:36 PM, Sawada Masahiko <sawad****@gmail*****> wrote: >>>>>>>>>> On Fri, Jul 24, 2015 at 12:01 PM, Amit Langote <amitl****@gmail*****> wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Friday, July 24, 2015, Fujii Masao <masao****@gmail*****> wrote: >>>>>>>>>>>> >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> http://www.postgresql.org/message-id/E1ZHC****@gemul***** >>>>>>>>>>>> >>>>>>>>>>>> The above commit introduced the triconsistent function into pg_trgm GIN >>>>>>>>>>>> opclass to improve the performance of full text search using that opclass. >>>>>>>>>>>> So what about applying this change into also pg_bigm for better >>>>>>>>>>>> performance? >>>>>>>>>>>> Attached is the WIP patch which adds the triconsistent function into >>>>>>>>>>>> pg_bigm. >>>>>>>>>>>> >>>>>>>>>>>> One big side effect by this patch is that the patched pg_bigm can no >>>>>>>>>>>> longer >>>>>>>>>>>> be compiled with PostgreSQL server 9.3 or before. This is because >>>>>>>>>>>> the triconsistent API in GIN index is supported only in 9.4 or later. I >>>>>>>>>>>> think >>>>>>>>>>>> that we can live with this situation if we keep maintenacing and providing >>>>>>>>>>>> the current stable versoin (i.e., 1.1) for 9.3 or before. Thought? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> +1 >>>>>>>>>>> >>>>>>>>>>> From Jeff Janes's pg_trgm 1.2 proposal, it seems clear that triconsistent >>>>>>>>>>> functions may be a win for longer search strings. Perhaps pg_bigm will gain >>>>>>>>>>> immensely from that. >>>>>>>>>> >>>>>>>>>> +1 >>>>>>>>>> >>>>>>>>>> I don't confirm performance improvement yet, but the patch looks good to me. >>>>>>>>> >>>>>>>>> Thanks for the review! Pushed. >>>>>>>>> >>>>>>>>> Since the patch bumped the version and droped the support for >>>>>>>>> PostgreSQL 9.3 or before, the document needs to be updated. >>>>>>>> >>>>>>>> Or we can create triConsistent function and add it to pg_bigm opclass >>>>>>>> only when the PostgreSQL version is 9.4 or later, for example, by using >>>>>>>> DO statement. Please see the attached patch. >>>>>>>> >>>>>>>> In this patch, pg_bigm--1.2.sql executes DO statement which retrieves >>>>>>>> the server version, and creates triConsistent function if the version is >>>>>>>> 9.4 or later. This means that we can nicely keep supporting 9.1, 9.2 and >>>>>>>> 9.3 with the latest version of pg_bigm. That's very nice! >>>>>>> >>>>>>> It means that upgrading to pg_bigm-1.2 in 9.3 or before is empty >>>>>>> actually. (just updating version number) >>>>>>> What are the merits of pg_bigm-1.2 supporting them? >>>>>> >>>>>> Good question. I think that the main merit is that we can reduce >>>>>> the number of branches that we have to maintain. >>>>>> >>>>> >>>>> I agree with reducing number of branches. >>>>> >>>>>> So I proposed to make the newer version of pg_bigm work fine with 9.3 or >>>>>> bofore. >>>>>> In this case, we don't need to create and support the branch 1.2 that you suggested. Thought? >>>>> >>>>> You meant that pg_bigm having triConsistent is released as new *minor* >>>>> version of 1.1 instead of version 1.2? >>>> >>>> No. My plan is to >>>> >>>> * Release pg_bigm supporting triConsistent as new "major" version, i.e., 1.2 >>>> * Then, release new "major" version, i.e., 1.3, when we apply another "major" >>>> changes (e.g., introduction of new convenient functions, Windows support) >>>> * Then, release minor versions of 1.1, 1.2 and 1.3 (maybe also 1.0?) when >>>> we apply "minor" fixes. >> >> Sorry for late response. >> >> I basically agree with this. >> But I have two questions: >> - The both 1.2 and 1.3 will support also 9.3 or before? > > 1.2, yes. > 1.3, it depends on whether the changes that we will apply to 1.3 are > available with 9.3 or before. > >> - the 1.3 also has triConsistentFn? > > Yes unless there is strong reason why we should drop triConsistent > support in 1.3. > >> >>> Attached is the updated version of the patch. I added a few source comments. >>> Barring any objection, I will commit this patch. >> >> The patch looks good to me. >> Compiling is done without warning, and pg_bigm is successfully >> updated to 1.2****@9***** or before and 9.4 . > > Thanks for the test! Pushed! Regards, -- Fujii Masao