aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Cache fmgr lookup data for index's getnext() function in IndexScanDesc,Tom Lane2000-03-14
| | | | | so that the fmgr lookup only has to happen once per index scan and not once per tuple. Seems to save 5% or so of CPU time for an indexscan.
* Implement column aliases on views "CREATE VIEW name (collist)".Thomas G. Lockhart2000-03-14
| | | | | | | | | | | | | | | | | | Implement TIME WITH TIME ZONE type (timetz internal type). Remap length() for character strings to CHAR_LENGTH() for SQL92 and to remove the ambiguity with geometric length() functions. Keep length() for character strings for backward compatibility. Shrink stored views by removing internal column name list from visible rte. Implement min(), max() for time and timetz data types. Implement conversion of TIME to INTERVAL. Implement abs(), mod(), fac() for the int8 data type. Rename some math functions to generic names: round(), sqrt(), cbrt(), pow(), etc. Rename NUMERIC power() function to pow(). Fix int2 factorial to calculate result in int4. Enhance the Oracle compatibility function translate() to work with string arguments (from Edwin Ramirez). Modify pg_proc system table to remove OID holes.
* Marginal performance improvement in LockBuffer --- calculate addressTom Lane2000-03-14
| | | | | | of BufferLocks[] entry just once. Seems to save 10% or so of the routine's runtime, which'd not be worth worrying about if it weren't such a hotspot.
* > I have improved the System V semaphore emulation of the QNX4 port.Bruce Momjian2000-03-14
| | | | | | | | | | Please > apply the attached patch to > > backend/port/qnx4 > > Andreas Kardos >
* Fix some bogosities in the code that deals with estimating the fractionTom Lane2000-03-14
| | | | | of tuples we are going to retrieve from a sub-SELECT. Must have been half asleep when I did this code the first time :-(
* Extend numeric_round and numeric_trunc to accept negative scale inputsTom Lane2000-03-13
| | | | | | (ie, allow rounding to occur at a digit position left of the decimal point). Apparently this is how Oracle handles it, and there are precedents in other programming languages as well.
* Remove unnecessary limitations on lengths of bpchar and varchar constants.Tom Lane2000-03-13
| | | | | | Since we detect oversize tuples elsewhere, I see no reason not to allow string constants that are 'too long' --- after all, they might never get stored in a tuple at all.
* Performance improvement for lexing long strings: increase flex'sTom Lane2000-03-13
| | | | | | YY_READ_BUF_SIZE, which turns out to have nothing to do with buffer size. It's just a totally arbitrary upper limit on how much data myinput() is asked for at one time.
* Somehow, the variant NATIONAL CHAR [ VARYING ] was missing from theTom Lane2000-03-12
| | | | set of SQL-standard type names that we accept.
* Fix performance bug in constant-expression simplifier. After findingTom Lane2000-03-12
| | | | | | | | | that the inputs to a given operator can be recursively simplified to constants, it was evaluating the operator using the op's *original* (unsimplified) arg list, so that any subexpressions had to be evaluated again. A constant subexpression at depth N got evaluated N times. Probably not very important in practical situations, but it made us look real slow in MySQL's 'crashme' test...
* Fix performance problem in fireRIRonSubselect: with nested subqueries,Tom Lane2000-03-12
| | | | | fireRIRonSubselect was invoked twice at each subselect, leading to an exponential amount of wasted effort.
* Clean up grammar's handling of NULL in expressions: a_expr_or_null isTom Lane2000-03-12
| | | | | | | gone, replaced by plain a_expr. The few places where we needed to distinguish NULL from a_expr are now handled by tests inside the actions rather than by separate productions. This allows us to accept queries like 'SELECT 1 + NULL' without requiring parentheses around the NULL.
* Further tweaking of logic that decides when to materialize an uncorrelatedTom Lane2000-03-11
| | | | | | | subplan: do it if subplan has subplans itself, and always do it if the subplan is an indexscan. (I originally set it to materialize an indexscan only if the indexqual is fairly selective, but I dunno what I was thinking ... an unselective indexscan is still expensive ...)
* Make TypeCategory think that NAME is a member of typeTom Lane2000-03-11
| | | | | category STRING. Also, if UNKNOWNOID is passed in, return UNKNOWN_TYPE not USER_TYPE.
* Further fixes for bogus list-slinging, scribbling on input, etc in typeTom Lane2000-03-11
| | | | | | | | | coercion code. I'm beginning to wonder why we have separate candidate selection routines for functions, operators, and aggregates --- shouldn't this code all be unified? But meanwhile, SELECT 'a' LIKE 'a'; finally works; the code for dealing with unknown input types for operators was pretty busted.
* Finish cleaning up backend's handling of /* ... */ and -- comments,Tom Lane2000-03-11
| | | | | | | per pghackers discussion around 20-Feb. Also add specific error messages for unterminated comments and unterminated quoted strings. These things are nonissues for input coming from psql, but they do matter for input coming from other front ends.
* Redo permissions-checking code so that it does the right thing at APPENDTom Lane2000-03-09
| | | | | | nodes. The former version failed to check permissions of relations that were referenced in second and later clauses of UNIONs, and it did not check permissions of tables referenced via inheritance.
* Trial implementation of ALTER DROP COLUMN.Hiroshi Inoue2000-03-09
| | | | | | They are #ifdef'd. Add -D_DROP_COLUMN_HACK__ compile option to evaluate it.
* Extend #ifdef CLOBBER_FREED_MEMORY debugging option so that memoryTom Lane2000-03-08
| | | | freed wholesale by AllocSetReset() is overwritten too.
* Repair access-to-already-freed-memory error recently introduced intoTom Lane2000-03-08
| | | | VACUUM.
* Clean up gmake warning caused by recent NetBSD patch. <grumble>Tom Lane2000-03-08
|
* I've made a diff against the 7.0beta1 tree that accomplishes several things:Bruce Momjian2000-03-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) adds NetBSD shared lib support on both ELF and a.out platforms 2) replaces "-L$(LIBPQDIR) -lpq" with "$(LIBPQ)" defined in Makefile.global. This makes it much easier to build stuff in the source tree after you've already installed the libraries. 3) adds TEMPLATEDIR in Makefile.global that indicates where the database templates are stored. This separates the template files from real libraries that are installed in $(LIBDIR). 4) changes include order of <readline/readline.h> and <readline.h>. The latest GNU readline installs its headers under a readline subdirectory. In addition to applying the patch below the following files need to be copied: backend/port/dynloader: bsd.h -> netbsd.h bsd.c -> netbsd.c include/port: bsd.h -> netbsd.h makefiles: Makefile.bsd -> Makefile.netbsd It would be great to see this incorporated into the source tree before the 7.0 release is cut. Thanks! -- Johnny C. Lam <lamj@stat.cmu.edu>
* Bruce and all:Bruce Momjian2000-03-08
| | | | | | | | | | Here's a patch to fix the " '.' not allowed in db path" problem I ran into. I removed '.' from the set of illegial characters, but added backtick. I also included an explicit test for attempting include a reference to a parent dir. How that? Ross
* Reversed out inet patch.Bruce Momjian2000-03-08
|
* Hi,Bruce Momjian2000-03-08
| | | | | | | | | | | | | the to_char() source code is large, here are regression tests for numeric/timestamp/int8 part. It is probably enough test for formatting code in the formatting.c module. The others (float4/float8/int4) types share this formatting code and eventual bugs for these types aren't few probable. Patch fix timestamp_to_char() for infinity/invalid timestamp too. Karel
* Protects you from coredumps if you do eg. str::int4 where str is a textBruce Momjian2000-03-07
| | | | | | | | | field. cf. Tom Lane's <19021.950544016@sss.pgh.pa.us> 14 Feb hackers message. Cheers, Patrick Welche
* I've recently written to pgsql-ports about a problem with PG7.0 on NTBruce Momjian2000-03-07
| | | | | | | | | | | | | (Subj: [PORTS] initdb problem on NT with 7.0). Since nobody helped me, I had to find out the reson. The difference between NT and Linux (for instance) is that "open( path, O_RDWR );" opens a file in text mode. So sometime less block can be read than required. I suggest a following patch. BTW the situation appeared before, see hba.c, pqcomm.c and others. Alexei Zakharov
* Someone (probably me) forgot about handling of typecasts applied toTom Lane2000-03-07
| | | | parameters.
* Sorting for the inet data type randomly returns the wrong resultBruce Momjian2000-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | when you have networks with the same prefix, but different netmasks. This is due to the fact that occassionally there is random (uninitialized?) data in the extra bits past the point where the netmask cares about them. ie (real data from a real live database): 10.0/10 == 00001010.00100000.00100000.00011000 10.0/11 == 00001010.00000000.00000000.00000000 ^ Bad data, normally never seen The v4bitncmp() function was only taking one bit length argument so it would determine that the networks were different, even though they really aren't (and the netmask test wouldn't be used). This ONLY happens if the tuple with the longer bit length is used as the ip_bits() for the v4bitncmp call AND there happens to be junk data in place in the shorter tuple. Odd and random, but I saw it happen a couple times so... Ryan Mooney
* Apply a MATERIAL node to the result of an uncorrelated subplan, if itTom Lane2000-03-02
| | | | looks like it will save computation to do so.
* Hmm, it seems nodeMaterial has been broken for a good long while;Tom Lane2000-03-02
| | | | closing a relcache entry more times than you open it is not cool.
* equalAttr() had its strcmp test backwards :-(Tom Lane2000-03-01
|
* Small performance improvement in comparetup_heap.Tom Lane2000-03-01
|
* Change reindex command to work properly with gist/hash/rtreeHiroshi Inoue2000-03-01
|
* Simplify parsing of column constraints by treating constraint attributesTom Lane2000-03-01
| | | | | | as independent clauses in the grammar. analyze.c takes care of putting the data where it belongs and complaining about invalid combinations. Also, make TEMP (and TEMPORARY) non-reserved words.
* Remove using puts() to print messages. Instead use TPRINTF.Tatsuo Ishii2000-03-01
|
* Changed execution time of ON <event> RESTRICT referentialJan Wieck2000-02-29
| | | | | | | integrity triggers to after statement allways. Ignores deferred state now, closer to SQL3 semantics. Jan
* Fix comment spacing.Bruce Momjian2000-02-28
|
* Looks like I broke SET variable = DEFAULT awhile ago. Ooops.Tom Lane2000-02-27
|
* Avoid a little bit of unnecessary computation in canonicalize_qual.Tom Lane2000-02-27
|
* Add lztext to TypeCategory so that lztext OP text cases will workTom Lane2000-02-27
| | | | correctly (the lztext value will be promoted to text automatically).
* Reactivated LZTEXT data type and changed rule plan- and qual-stringsJan Wieck2000-02-27
| | | | | | into lztext. Jan
* Minor improvements in regprocout() and oidvectortypes().Tom Lane2000-02-27
|
* Fix poorly worded error messages for unary operator type resolutionTom Lane2000-02-27
| | | | | | | failures. Fix some outright bugs too, including a reference to uninitialized memory that would cause failures like this one: select -('1234567890.1234567'::text); ERROR: Unable to locate type oid 2139062143 in catalog
* Clean up dependencies for version.o.Tom Lane2000-02-27
|
* Add date and time datatype handling to convert_to_scalar. (I was waitingTom Lane2000-02-26
| | | | | for Thomas to do the datetime consolidation before touching this, but it's done now...)
* Change rule dumper to produce reasonable output for casts that assignTom Lane2000-02-26
| | | | | a specific length or precision, such as foo::char(8). Remove erroneous removal of user-written casts at the top level of a SELECT target item.
* Fix exprTypmod to recognize length-coercion function expressions,Tom Lane2000-02-26
| | | | | | | | | | | such as bpchar(char_expression, N), and pull out the attrtypmod that the function is coercing to. This allows correct deduction of the column type in examples such as CREATE VIEW v AS SELECT f1::char(8) FROM tbl; Formerly we labeled v's column as char-of-unknown-length not char(8). Also, this change causes the parser not to insert a redundant length coercion function if the user has explicitly casted an INSERT or UPDATE expression to the right length.
* I had managed to break acceptance of "char", which worked in 6.5 toTom Lane2000-02-26
| | | | refer to the single-byte char type. 7.0 was taking it as bpchar(1).
* Undo a couple of mistaken applications of NameStr() to StringInfos.Tom Lane2000-02-26
| | | | | It worked, because they both have fields named 'data', but it's surely trouble waiting to happen. I wonder whether there are more ...