summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2000-08-06Implement LIKE/ESCAPE. Change parser to use like()/notlike()Thomas G. Lockhart
rather than the "~~" operator; this made it easy to add ESCAPE features. Implement ILIKE, NOT ILIKE, and the ESCAPE clause for them. afaict this is not MultiByte clean, but lots of other stuff isn't either. Fix up underlying support code for LIKE/NOT LIKE. Things should be faster and does not require internal string copying. Update regression test to add explicit checks for LIKE/NOT LIKE/ILIKE/NOT ILIKE. Remove colon and semi-colon operators as threatened in 7.0. Implement SQL99 COMMIT/AND NO CHAIN. Throw elog(ERROR) on COMMIT/AND CHAIN per spec since we don't yet support it. Implement SQL99 CREATE/DROP SCHEMA as equivalent to CREATE DATABASE. This is only a stopgap or demo since schemas will have another implementation soon. Remove a few unused production rules to get rid of warnings which crept in on the last commit. Fix up tabbing in some places by removing embedded spaces.
2000-08-06Implement LIKE/ESCAPE. Change parser to use like()/notlike()Thomas G. Lockhart
rather than the "~~" operator; this made it easy to add ESCAPE features. Implement ILIKE, NOT ILIKE, and the ESCAPE clause for them. afaict this is not MultiByte clean, but lots of other stuff isn't either. Fix up underlying support code for LIKE/NOT LIKE. Things should be faster and does not require internal string copying. Update regression test to add explicit checks for LIKE/NOT LIKE/ILIKE/NOT ILIKE. Remove colon and semi-colon operators as threatened in 7.0. Implement SQL99 COMMIT/AND NO CHAIN. Throw elog(ERROR) on COMMIT/AND CHAIN per spec since we don't yet support it. Implement SQL99 CREATE/DROP SCHEMA as equivalent to CREATE DATABASE. This is only a stopgap or demo since schemas will have another implementation soon. Remove a few unused production rules to get rid of warnings which crept in on the last commit. Fix up tabbing in some places by removing embedded spaces.
2000-08-06Support SQL99 embedded double-quote syntax for quoted identifiers.Thomas G. Lockhart
Allow this in the parser and in pg_dump, but it is probably not enough for a complete solution. Better to have the feature started then never here.
2000-08-06Toast all the system-table columns that seem to need it. It turns outTom Lane
that giving pg_proc a toast table required solving the same problems we'd have to solve for pg_class --- pg_proc is one of the relations that gets bootstrapped in relcache.c. Solution is to go back at the end of initialization and read in the *real* pg_class row to replace the phony entry created by formrdesc(). This should work as long as there's no need to touch any toasted values during initialization, which seems a reasonable assumption. Although I did not add a toast-table for every single system table with a varlena attribute, I believe that it would work to just do ALTER TABLE pg_class CREATE TOAST TABLE. So anyone who's really intent on having several thousand ACL entries for a rel could do it. NOTE: I didn't force initdb, but you must do one to see the effects of this patch.
2000-08-06Clean up inefficiency in ExecRelCheck, and cause it to do the rightTom Lane
thing when there are multiple result relations. Formerly, during something like 'UPDATE foo*', foo's constraints and *only* foo's constraints would be applied to all foo's children. Wrong-o ...
2000-08-06Ensure that catcache 'busy' flags are reset at transaction abort.Tom Lane
Without this, an elog during cache-entry load leaves that catcache unusable. elog in that segment of code is pretty unusual but it can happen.
2000-08-06Copy sub-Query nodes to avoid trouble when same sub-Query is linked toTom Lane
multiple times in the parsetree (can happen in COALESCE or BETWEEN contexts, for example). This is a pretty grotty solution --- it will do for now, but perhaps we can do better when we redesign querytrees. What we need is a consistent policy about whether querytrees should be considered read-only structures or not ...
2000-08-05> I had to back out the patch. It only compiles with multi-byte enabled.Bruce Momjian
Ooops, I forget... here it is again. > > > If encoding is not supported returns ERROR. and if multibyte not enabled too.... Thanks. Karel ~
2000-08-05- Minor fix to create temp table for xrefsPhilip Warner
2000-08-05- Only disable triggers for the table being loadedPhilip Warner
- disable triggers prior to BLOB load - better query for loading blob xrefs - Fixes to error handling code
2000-08-04Back out to_ascii patch from Karel.Bruce Momjian
2000-08-04Add missing files from Karel, tip from Jan.Bruce Momjian
2000-08-04 to_ascii( text )Bruce Momjian
- encode 'text' from database encoding to ASCII to_ascii('\256\341k') to_ascii( text, int4 ) - encode 'text' from 'int4' encoding to ASCII to_ascii('\256\341k', 8) to_ascii( text, name ) - encode 'text' from 'name' encoding to ASCII to_ascii('\256\341k', 'LATIN2') Now is supported LATIN1, LATIN2, WIN1250. For other character sets I haven't good resources. Add new encoding is easy... If encoding is not supported returns ERROR. Note --- not exists total corect conversion to ASCII, this function try convert chars those is _probably_ interpret-able in ASCII for others use ' '. But for example for all Czech characters it is sufficient ... hmm Chinese / JAP and other complicated langs have bad luck here :-( Karel
2000-08-04Subclasses inherit constraints of super classes properlyHiroshi Inoue
2000-08-04Fix tuptoaster bugs induced by making bytea toastable. Durn thing wasTom Lane
trying to toast tuples inserted into toast tables! Fix is two-pronged: first, ensure all columns of a toast table are marked attstorage='p', and second, alter the target chunk size so that it's less than the threshold for trying to toast a tuple. (Code tried to do that but the expression was wrong.) A few cosmetic cleanups in tuptoaster too. NOTE: initdb forced due to change in toaster chunk-size.
2000-08-03Convert inet-related functions to new fmgr style. I have also taken itTom Lane
on myself to do something about the non-self-consistency of the inet comparison functions. The results are probably still semantically wrong (inet and cidr should have different comparison semantics, I think) but at least the boolean operators now agree with each other and with the sort order of indexes on inet/cidr.
2000-08-03Modify heap_open()/heap_openr() API per pghackers discussion of 11 July.Tom Lane
These two routines will now ALWAYS elog() on failure, whether you ask for a lock or not. If you really want to get a NULL return on failure, call the new routines heap_open_nofail()/heap_openr_nofail(). By my count there are only about three places that actually want that behavior. There were rather more than three places that were missing the check they needed to make under the old convention :-(.
2000-08-03More functions updated to new fmgr style --- money, name, tid datatypes.Tom Lane
We're reaching the mopup stage here (good thing too, this is getting tedious).
2000-08-03Repair bug noted by Paul Caskey: neqsel() has been generating a bogusTom Lane
result, in fact nearly the opposite of what it should, because it was passing the not-equal operator to eqsel() which would use it to compare the value against the most common value in the column, and of course obtain the wrong result therefrom. Must pass the equality operator to eqsel() instead. Fortunately that's easy to get from the oprnegate link.
2000-08-01Convert all remaining float4 and float8 functions to new fmgr style.Tom Lane
At this point I think it'd be possible to make float4 be pass-by-value without too much work --- and float8 too on machines where Datum is 8 bytes. Something to try when the mood strikes, anyway.
2000-08-01- Added --create, --no-owner, --superuser, --no-reconnect (pg_dump & pg_restore)Philip Warner
- Added code to dump 'Create Schema' statement (pg_dump) - Don't bother to disable/enable triggers if we don't have a superuser (pg_restore) - Cleaned up code for reconnecting to database. - Force a reconnect as superuser before enabling/disabling triggers. - Added & Removed --throttle (pg_dump) - Fixed minor bug in language dumping code: expbuffres were not being reset. - Fixed version number initialization in _allocAH (pg_backup_archiver.c) - Added second connection when restoring BLOBs to allow temp. table to survive (db reconnection causes temp tables to be lost).
2000-07-31Make acl-related functions safe for TOAST. Mark pg_class.relacl asTom Lane
compressible but not externally storable (since we're not sure about whether creating a toast relation for pg_class would work).
2000-07-31Cancel request while waiting for a lock should try to wakeHiroshi Inoue
up sleeping processes.
2000-07-30Type lztext is toast.Tom Lane
(Sorry, couldn't help it...) Removed type filename as well, since it's unused and probably useless. INITDB FORCED, because pg_rewrite columns are now plain text again.
2000-07-30Convert all remaining geometric operators to new fmgr style. ThisTom Lane
allows fixing problems with operators that expected to be able to return a NULL, such as the '#' line-segment-intersection operator that tried to return NULL when the two segments don't intersect. (See, eg, bug report from 1-Nov-99 on pghackers.) Fix some other bugs in passing, such as backwards comparison in path_distance().
2000-07-29PATH and POLYGON datatypes are now TOASTable. Associated functionsTom Lane
updated to new fmgr style. Deleted hoary old functions for compatibility with pre-6.1 representations of these datatypes.
2000-07-29bpchar, varchar, bytea, numeric are toastable --- if you initdb, whichTom Lane
I did not force. I marked numeric as compressable-but-not-move-off-able, partly to test that storage mode and partly because I've got doubts that numerics are large enough to need external storage.
2000-07-28Fix acceptance of PATH as a type and column name.Thomas G. Lockhart
Note that this has changed some of the edge cases for what is accepted as a type name and/or column id. Regression test passes, but more tweaks may be coming...
2000-07-28Add int2-vs-int8 comparison operators. These are now necessary becauseTom Lane
the planner may try to generate them as a result of transitivity of the existing int2-vs-int4 and int4-vs-int8 operators. In fact, it is now necessary that mergejoinable cross-datatype operators form closed sets. Add an opr_sanity regress test to detect missing operators.
2000-07-28Remove <values.h> inclusions, no-longer-needed MAXINT definitions.Tom Lane
2000-07-28Fix sloppy macro coding (not enough parentheses).Tom Lane
2000-07-27Make planner safe for recursive calls --- needed for cases whereTom Lane
eval_const_expressions tries to simplify an SQL function.
2000-07-27Some pedantic compile syntax errors to fix with the following patchBruce Momjian
for today's snapshot Andreas
2000-07-27Here is a bug and patch to fix it. I have tested this bug and fix onBruce Momjian
FreeBSD/Intel and DecUX/Alpha machines. The bug appears in postgresql 6.5.3 and 7.0.2. Can someone please review it and apply it to the source tree? Sometimes when the postgres connection dies it is necessary to attempt to reconnect. Calling the pgconnection::Connect method in a derived class leaks memory because it does not clear the current connection (if there is one). These patches ensures that any open connections are closed before attempting to open a new one. -Michael Richards
2000-07-27Arrange to free planning memory (or most of it, anyway) at completionTom Lane
of planning. This should reduce memory requirements for large joins.
2000-07-27Ensure that values stored within arrays are not toasted, perTom Lane
discussion on pghackers a few days ago.
2000-07-26When dealing with OR-of-ANDs quals, extract multiple subclauses of an ANDTom Lane
to use with a multiple-key index. Formerly we would only extract clauses that had to do with the first key of the index, which was correct but didn't exploit the index fully.
2000-07-25ExecRestrPos() really needs to raise ERROR, not a wimpy DEBUG message,Tom Lane
if given a node type it doesn't support. As is, wrong results from a mergejoin would go undetected.
2000-07-25Ensure that if the OID counter wraps around, we will not generate 0,Tom Lane
nor any OID in the reserved range (1-16383).
2000-07-25Fix confusion between sizeof(long) and sizeof(long*), as well asTom Lane
failure to MAXALIGN the start of shmem allocable space. No reports of trouble here, just compulsive tidiness.
2000-07-25Add commentary about varying usage of scankeys in btree code.Tom Lane
2000-07-25Clean up and document btree code for ordering keys. Neat stuff,Tom Lane
actually, but who could understand it with no comments? Fix bug while at it: _bt_orderkeys would try to invoke comparisons on NULL inputs, given the right sort of redundant quals.
2000-07-25Update comments.Tom Lane
2000-07-24Update bsdi templateBruce Momjian
2000-07-24pg_backup_plain_text.c replaced by pg_backup_null.cPhilip Warner
2000-07-24- no longer put ACLs at end of dumpPhilip Warner
- connect as appropriate user in pg_restore with db connection - dump owner of rule in pg_dump
2000-07-24Deduce equality constraints that are implied by transitivity ofTom Lane
mergejoinable qual clauses, and add them to the query quals. For example, WHERE a = b AND b = c will cause us to add AND a = c. This is necessary to ensure that it's safe to use these variables as interchangeable sort keys, which is something 7.0 knows how to do. Should provide a useful improvement in planning ability, too.
2000-07-23Unset locale variables before running regression tests. (All of them!)Peter Eisentraut
Don't do config.status substitutions into the regression test makefile.
2000-07-23Clean up some sloppy casts --- Oid vs. Datum, that sort of thing.Tom Lane
2000-07-23Further cleanup of array behavior. Slice assignments to arrays withTom Lane
varlena elements work now. Allow assignment to previously-nonexistent subscript position to extend array, but only for 1-D arrays and only if adjacent to existing positions (could do more if we had a way to represent nulls in arrays, but I don't want to tackle that now). Arrange for assignment of NULL to an array element in UPDATE to be a no-op, rather than setting the entire array to NULL as it used to. (Throwing an error would be a reasonable alternative, but it's never done that...) Update regress test accordingly.