Masahiko Sawada
sawad****@gmail*****
2015年 8月 5日 (水) 02:43:07 JST
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? - the 1.3 also has triConsistentFn? > 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 . Regards, -- Masahiko Sawada