summaryrefslogtreecommitdiff
path: root/contrib/pg_trgm
AgeCommit message (Collapse)Author
2013-02-13Fix contrib/pg_trgm's similarity() function for trigram-free strings.Tom Lane
Cases such as similarity('', '') produced a NaN result due to computing 0/0. Per discussion, make it return zero instead. This appears to be the basic cause of bug #7867 from Michele Baravalle, although it remains unclear why her installation doesn't think Cyrillic letters are letters. Back-patch to all active branches.
2012-08-20Fix bugs in contrib/pg_trgm's LIKE pattern analysis code.Tom Lane
Extraction of trigrams did not process LIKE escape sequences properly, leading to possible misidentification of trigrams near escapes, resulting in incorrect index search results. Fujii Masao
2012-06-25Replace int2/int4 in C code with int16/int32Peter Eisentraut
The latter was already the dominant use, and it's preferable because in C the convention is that intXX means XX bits. Therefore, allowing mixed use of int2, int4, int8, int16, int32 is obviously confusing. Remove the typedefs for int2 and int4 for now. They don't seem to be widely used outside of the PostgreSQL source tree, and the few uses can probably be cleaned up by the time this ships.
2012-06-10Run pgindent on 9.2 source tree in preparation for first 9.3Bruce Momjian
commit-fest.
2011-10-12Throw a useful error message if an extension script file is fed to psql.Tom Lane
We have seen one too many reports of people trying to use 9.1 extension files in the old-fashioned way of sourcing them in psql. Not only does that usually not work (due to failure to substitute for MODULE_PATHNAME and/or @extschema@), but if it did work they'd get a collection of loose objects not an extension. To prevent this, insert an \echo ... \quit line that prints a suitable error message into each extension script file, and teach commands/extension.c to ignore lines starting with \echo. That should not only prevent any adverse consequences of loading a script file the wrong way, but make it crystal clear to users that they need to do it differently now. Tom Lane, following an idea of Andrew Dunstan's. Back-patch into 9.1 ... there is not going to be much value in this if we wait till 9.2.
2011-09-30Cache the result of makesign() across calls of gtrgm_penalty().Tom Lane
Since gtrgm_penalty() is usually called many times in a row with the same "newval" (to determine which item on an index page newval fits into best), the makesign() calculation is repetitious. It's expensive enough to make it worth caching the result, so do so. On my machine this is good for more than a 40% savings in the time needed to build a trigram index on /usr/share/dict/words. This is all per a suggestion of Heikki's. In passing, make some mostly-cosmetic improvements in the caching logic in the other functions in this file that rely on caching info in fn_extra.
2011-09-11Remove many -Wcast-qual warningsPeter Eisentraut
This addresses only those cases that are easy to fix by adding or moving a const qualifier or removing an unnecessary cast. There are many more complicated cases remaining.
2011-09-01Remove unnecessary #include references, per pgrminclude script.Bruce Momjian
2011-04-25Support "make check" in contribPeter Eisentraut
Added a new option --extra-install to pg_regress to arrange installing the respective contrib directory into the temporary installation. This is currently not yet supported for Windows MSVC builds. Updated the .gitignore files for contrib modules to ignore the leftovers of a temp-install check run. Changed the exit status of "make check" in a pgxs build (which still does nothing) to 0 from 1. Added "make check" in contrib to top-level "make check-world".
2011-04-10pgindent run before PG 9.1 beta 1.Bruce Momjian
2011-02-17Fix contrib/pg_trgm to have smoother updates from 9.0.Tom Lane
Take care of some loose ends in the update-from-unpackaged script, and apply some ugly hacks to ensure that it produces the same catalog state as the fresh-install script. Per discussion, this seems like a safer plan than having two different catalog states that both call themselves "pg_trgm 1.0", even if it's not immediately clear that the subtle differences would ever matter. Also, fix the stub function gin_extract_trgm() so that it works instead of just bleating. Needed because this function will get called during a regular dump and reload, if there are any indexes using its opclass. The user won't have an opportunity to update the extension till later, so telling him to do so is unhelpful.
2011-02-13Assorted fixups for "unpackaged" conversion scripts.Tom Lane
From first pass of testing. Notably, there seems to be no need for adminpack--unpackaged--1.0.sql because none of the objects that the old module creates would ever be dumped by pg_dump anyway (they are all in pg_catalog).
2011-02-13Avoid use of CREATE OR REPLACE FUNCTION in extension installation files.Tom Lane
It was never terribly consistent to use OR REPLACE (because of the lack of comparable functionality for data types, operators, etc), and experimentation shows that it's now positively pernicious in the extension world. We really want a failure to occur if there are any conflicts, else it's unclear what the extension-ownership state of the conflicted object ought to be. Most of the time, CREATE EXTENSION will fail anyway because of conflicts on other object types, but an extension defining only functions can succeed, with bad results.
2011-02-13Convert contrib modules to use the extension facility.Tom Lane
This isn't fully tested as yet, in particular I'm not sure that the "foo--unpackaged--1.0.sql" scripts are OK. But it's time to get some buildfarm cycles on it. sepgsql is not converted to an extension, mainly because it seems to require a very nonstandard installation process. Dimitri Fontaine and Tom Lane
2011-01-31Support LIKE and ILIKE index searches via contrib/pg_trgm indexes.Tom Lane
Unlike Btree-based LIKE optimization, this works for non-left-anchored search patterns. The effectiveness of the search depends on how many trigrams can be extracted from the pattern. (The worst case, with no trigrams, degrades to a full-table scan, so this isn't a panacea. But it can be very useful.) Alexander Korotkov, reviewed by Jan Urbanski
2011-01-09Update contrib/pg_trgm for new GIN extractQuery API.Tom Lane
No actual change in functionality ... just get rid of uselessly complex code to pass the number of keys via extra_data.
2010-12-04Add KNNGIST support to contrib/pg_trgm.Tom Lane
Teodor Sigaev, with some revision by Tom
2010-11-23Remove useless whitespace at end of linesPeter Eisentraut
2010-09-22Some more gitignore cleanups: cover contrib and PL regression test outputs.Tom Lane
Also do some further work in the back branches, where quite a bit wasn't covered by Magnus' original back-patch.
2010-09-22Convert cvsignore to gitignore, and add .gitignore for build targets.Magnus Hagander
2010-09-20Remove cvs keywords from all files.Magnus Hagander
2010-08-19Remove extra newlines at end and beginning of files, add missing newlinesPeter Eisentraut
at end of files.
2009-06-11Mark contrib's GiST and GIN opclass support functions as STRICT, for safety.Tom Lane
(Note: GiST penalty functions could possibly be non-strict, but none are at present.)
2009-06-118.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef listBruce Momjian
provided by Andrew.
2009-04-28Blank line Makefile cleanups.Bruce Momjian
2009-03-25Adjust the APIs for GIN opclass support functions to allow the extractQuery()Tom Lane
method to pass extra data to the consistent() and comparePartial() methods. This is the core infrastructure needed to support the soon-to-appear contrib/btree_gin module. The APIs are still upward compatible with the definitions used in 8.3 and before, although *not* with the previous 8.4devel function definitions. catversion bump for changes in pg_proc entries (although these are just cosmetic, since GIN doesn't actually look at the function signature before calling it...) Teodor Sigaev and Oleg Bartunov
2008-11-12Support of multibyte encoding for pg_trgmTeodor Sigaev
2008-07-11Add caching of query to GIN/GiST consistent function.Teodor Sigaev
Per performance gripe from nomao.com
2008-05-17Add $PostgreSQL$ markers to a lot of files that were missing them.Andrew Dunstan
This particular batch was just for *.c and *.h file. The changes were made with the following 2 commands: find . \( \( -name 'libstemmer' -o -name 'expected' -o -name 'ppport.h' \) -prune \) -o \( -name '*.[ch]' \) \( -exec grep -q '\$PostgreSQL' {} \; -o -print \) | while read file ; do head -n 1 < $file | grep -q '^/\*' && echo $file; done | xargs -l sed -i -e '1s/^\// /' -e '1i/*\n * $PostgreSQL:$ \n *' find . \( \( -name 'libstemmer' -o -name 'expected' -o -name 'ppport.h' \) -prune \) -o \( -name '*.[ch]' \) \( -exec grep -q '\$PostgreSQL' {} \; -o -print \) | xargs -l sed -i -e '1i/*\n * $PostgreSQL:$ \n */'
2008-04-14Push index operator lossiness determination down to GIST/GIN opclassTom Lane
"consistent" functions, and remove pg_amop.opreqcheck, as per recent discussion. The main immediate benefit of this is that we no longer need 8.3's ugly hack of requiring @@@ rather than @@ to test weight-using tsquery searches on GIN indexes. In future it should be possible to optimize some other queries better than is done now, by detecting at runtime whether the index match is exact or not. Tom Lane, after an idea of Heikki's, and with some help from Teodor.
2007-12-09Fix completely-bogus volatility markings on pg_trgm functions.Tom Lane
2007-11-16Run pgindent on remaining files now that LOOPBYTE is a usable macro.Bruce Momjian
2007-11-16Modify LOOPBYTE/LOOPBIT macros to be more logical; rather than have theBruce Momjian
for() body passed as a parameter, make the macros act as simple headers to code blocks. This allows pgindent to be run on these files.
2007-11-15pgindent run for 8.3.Bruce Momjian
2007-11-13Fix a few contrib regression test scripts that hadn't gotten the wordTom Lane
about best practice for including the module creation scripts: to wit that you should suppress NOTICE messages. This avoids creating regression failures by adding or removing comment lines in the module scripts.
2007-11-13Add CVS version labels to all install/uninstall scripts.Bruce Momjian
2007-11-11Adjust pg_trgm expected output for new *.sql file.Bruce Momjian
2007-11-11Make /contrib install/uninstall script consistent:Bruce Momjian
remove transactions use create or replace function make formatting consistent set search patch on first line Add documentation on modifying *.sql to set the search patch, and mention that major upgrades should still run the installation scripts. Some of these issues were spotted by Tom today.
2007-11-10Remove references to READMEs from /contrib Makefiles.Bruce Momjian
2007-11-10Move most /contrib README files into SGML. Some still need conversionBruce Momjian
or will never be converted.
2007-09-30Support functions for index opclasses should be immutable.Tom Lane
Found by running opr_sanity on contrib modules.
2007-07-12Simplify overly-cute array coding to avoid an apparent gcc bug, whichTom Lane
may or may not be harmless. Report from Stefan, patch from Heikki.
2007-06-26Fix PGXS conventions so that extensions can be built against PostgresTom Lane
installations whose pg_config program does not appear first in the PATH. Per gripe from Eddie Stanley and subsequent discussions with Fabien Coelho and others.
2007-04-06Support varlena fields with single-byte headers and unaligned storage.Tom Lane
This commit breaks any code that assumes that the mere act of forming a tuple (without writing it to disk) does not "toast" any fields. While all available regression tests pass, I'm not totally sure that we've fixed every nook and cranny, especially in contrib. Greg Stark with some help from Tom Lane
2007-03-14Add GIN support for pg_trgm. From Guillaume Smet <guillaume.smet@gmail.com>Teodor Sigaev
with minor editorization by me.
2007-02-28Fix up several contrib modules that were using varlena datatypes in ↵Tom Lane
not-so-obvious ways. I'm not totally sure that I caught everything, but at least now they pass their regression tests with VARSIZE/SET_VARSIZE defined to reverse byte order.
2007-02-27Replace direct assignments to VARATT_SIZEP(x) with SET_VARSIZE(x, len).Tom Lane
Get rid of VARATT_SIZE and VARATT_DATA, which were simply redundant with VARSIZE and VARDATA, and as a consequence almost no code was using the longer names. Rename the length fields of struct varlena and various derived structures to catch anyplace that was accessing them directly; and clean up various places so caught. In itself this patch doesn't change any behavior at all, but it is necessary infrastructure if we hope to play any games with the representation of varlena headers. Greg Stark and Tom Lane
2007-02-09Remove useless CPPFLAGS.Peter Eisentraut
2007-02-09Add $PostgreSQL$ marker to contrib makefiles.Peter Eisentraut
2007-01-26Squelch some VC++ compiler warnings. Mark float literals with the "f"Neil Conway
suffix, to distinguish them from doubles. Make some function declarations and definitions use the "const" qualifier for arguments consistently. Ignore warning 4102 ("unreferenced label"), because such warnings are always emitted by bison-generated code. Patch from Magnus Hagander.