aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* SQL-language functions are now callable in ordinary fmgr contexts ...Tom Lane2000-08-24
| | | | | | for example, an SQL function can be used in a functional index. (I make no promises about speed, but it'll work ;-).) Clean up and simplify handling of functions returning sets.
* Add functions to convert to and from text, and to truncate to MAC OUI.Thomas G. Lockhart2000-08-23
| | | | | Remove hardcoded macaddr_manuf(), which had really old, obsolete info. Replace this with some contrib/mac/ code to maniag OUI info from IEEE.
* Fix plpgsql lexer to accept Windows-style and Mac-style newlines asTom Lane2000-08-22
| | | | newlines.
* Make scanner multibyte aware. Currently it may produce an incorrectTatsuo Ishii2000-08-22
| | | | multibyte sequence while truncating identifiers.
* Make makeObjectName multibyte aware. Currently, it may produceTatsuo Ishii2000-08-22
| | | | incorrect multibyte sequence while truncating too long names.
* Add multibyte support for both LIKE and ILIKETatsuo Ishii2000-08-22
| | | | Eliminate up-to-4-times memory allocation problem
* Fix a many-legged critter reported by chifungfan@yahoo.com: under theTom Lane2000-08-22
| | | | | | | | | | right circumstances a hash join executed as a DECLARE CURSOR/FETCH query would crash the backend. Problem as seen in current sources was that the hash tables were stored in a context that was a child of TransactionCommandContext, which got zapped at completion of the FETCH command --- but cursor cleanup executed at COMMIT expected the tables to still be valid. I haven't chased down the details as seen in 7.0.* but I'm sure it's the same general problem.
* Add some more Assert checks.Tom Lane2000-08-22
|
* Move pg_checkretval out of the planner (where it never belonged) intoTom Lane2000-08-21
| | | | | | pg_proc.c (where it's actually used). Fix it to correctly handle tlists that contain resjunk target items, and improve error messages. This addresses bug reported by Krupnikov 6-July-00.
* Fix format_type() to display correct lengths for BIT/BIT VARYING.Tom Lane2000-08-21
| | | | | Also, make it depend on type OIDs rather than type names for more consistency with rest of backend.
* fmgr interface mopup work. Use new DatumGetBool and BoolGetDatumTom Lane2000-08-21
| | | | | | | | macros where appropriate (the code used to have several different ways of doing that, including Int32, Int8, UInt8, ...). Remove last few references to float32 and float64 typedefs --- it's all float4/float8 now. The typedefs themselves should probably stay in c.h for a release or two, though, to avoid breaking user-written C functions.
* First pass at integrating BIT and BIT VARYING code from Adriaan Joubert.Tom Lane2000-08-21
| | | | | | | Update functions to new-style fmgr, make BIT and VARBIT be binary- equivalent, add entries to allow these types to be btree indexed, correct a few bugs. BIT/VARBIT are now toastable, too. NOTE: initdb forced due to catalog updates.
* Standardize on just one spelling of BITSPERBYTE.Tom Lane2000-08-20
|
* Substitute libdir into createlang as last resort so one doesn't have to setPeter Eisentraut2000-08-20
| | | | PGLIB or use any option anymore.
* Introduce HAVE_UNIX_SOCKETS symbol to replace repeatedly listing all thePeter Eisentraut2000-08-20
| | | | unsupported platforms.
* Make functional indexes accept binary-compatible functions, for exampleTom Lane2000-08-20
| | | | CREATE INDEX fooi ON foo (lower(f1)) where f1 is varchar rather than text.
* Clean up handling of variable-free qual clauses. System now does theTom Lane2000-08-13
| | | | | | | | | | right thing with variable-free clauses that contain noncachable functions, such as 'WHERE random() < 0.5' --- these are evaluated once per potential output tuple. Expressions that contain only Params are now candidates to be indexscan quals --- for example, 'var = ($1 + 1)' can now be indexed. Cope with RelabelType nodes atop potential indexscan variables --- this oversight prevents 7.0.* from recognizing some potentially indexscanable situations.
* Mop-up for removal of ':' and ';' operators ... like, say, actuallyTom Lane2000-08-12
| | | | | take 'em out of pg_operator. Also remove from scan.l's set of legal operator characters. Update documentation.
* Fix ruleutils to produce correct output for array assignment, suchTom Lane2000-08-12
| | | | as UPDATE foo SET arr[3] = 42.
* Update comments for some parse node types.Tom Lane2000-08-11
|
* copyObject() and equal() now know about all parse-time node types,Tom Lane2000-08-11
| | | | | | | | including utility statements. Still can't copy or compare executor state, but at present that doesn't seem to be necessary. This makes it possible to execute most (all?) utility statements in plpgsql. Had to change parsetree representation of CreateTrigStmt so that it contained only legal Nodes, and not bare string constants.
* Remove debugging Assert that should never have been committed in theTom Lane2000-08-11
| | | | first place :-(
* Make debug_assertions default to ON, when compiled in at all, forTom Lane2000-08-11
| | | | backwards compatibility with old behavior.
* CREATE btree INDEX takes dead tuples into account when old transactionsHiroshi Inoue2000-08-10
| | | | are running.
* Reimplement MULTIBYTE support (oops). Not tested, but it does compile.Thomas G. Lockhart2000-08-09
|
* Remove 'func_tlist' from Func expression nodes, likewise 'param_tlist'Tom Lane2000-08-08
| | | | | | | | from Param nodes, per discussion a few days ago on pghackers. Add new expression node type FieldSelect that implements the functionality where it's actually needed. Clean up some other unused fields in Func nodes as well. NOTE: initdb forced due to change in stored expression trees for rules.
* Buf fix to pg_restire -S option in getoptsPhilip Warner2000-08-08
|
* TOAST mop-up work: update comments for tuple-size-related symbols suchTom Lane2000-08-07
| | | | | | | as MaxHeapAttributeNumber. Increase MaxAttrSize to something more reasonable (given what it's used for, namely checking char(n) declarations, I didn't make it the full 1G that it could theoretically be --- 10Mb seemed a more reasonable number). Improve calculation of MaxTupleSize.
* - version # change in headerPhilip Warner2000-08-07
| | | | CVs: ----------------------------------------------------------------------
* - Support for iscachable when dumping functionsPhilip Warner2000-08-07
|
* Allow LIKE and ILIKE as TokenId (and hence ColId) to make sure that theyThomas G. Lockhart2000-08-07
| | | | | are allowed in the func_name production. Otherwise, we can't define more like() and ilike() functions for new data types.
* Clean up code to remove the explicit backslash cruft.Thomas G. Lockhart2000-08-07
| | | | | If the backslash default is still wanted, just pass a backslash to MatchText() for the two-parameter callable routines.
* Include the case-insensitive LIKE prototypes.Thomas G. Lockhart2000-08-07
|
* Forgot to update the regression test output.Thomas G. Lockhart2000-08-07
|
* Clean up bogosities in use of random(3) and srandom(3) --- do not assumeTom Lane2000-08-07
| | | | | | | that RAND_MAX applies to them, since it doesn't. Instead add a config.h parameter MAX_RANDOM_VALUE. This is currently set at 2^31-1 but could be auto-configured if that ever proves necessary. Also fix some outright bugs like calling srand() where srandom() is appropriate.
* Implement LIKE/ESCAPE. Change parser to use like()/notlike()Thomas G. Lockhart2000-08-06
| | | | | | | | | | | | | | | | | | | | 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.
* Implement LIKE/ESCAPE. Change parser to use like()/notlike()Thomas G. Lockhart2000-08-06
| | | | | | | | | | | | | | | | | | | | 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.
* Support SQL99 embedded double-quote syntax for quoted identifiers.Thomas G. Lockhart2000-08-06
| | | | | | 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.
* Toast all the system-table columns that seem to need it. It turns outTom Lane2000-08-06
| | | | | | | | | | | | | | | | 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.
* Clean up inefficiency in ExecRelCheck, and cause it to do the rightTom Lane2000-08-06
| | | | | | 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 ...
* Ensure that catcache 'busy' flags are reset at transaction abort.Tom Lane2000-08-06
| | | | | | 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.
* Copy sub-Query nodes to avoid trouble when same sub-Query is linked toTom Lane2000-08-06
| | | | | | | | 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 ...
* > I had to back out the patch. It only compiles with multi-byte enabled.Bruce Momjian2000-08-05
| | | | | | | | | | | | | | Ooops, I forget... here it is again. > > > If encoding is not supported returns ERROR. and if multibyte not enabled too.... Thanks. Karel ~
* - Minor fix to create temp table for xrefsPhilip Warner2000-08-05
|
* - Only disable triggers for the table being loadedPhilip Warner2000-08-05
| | | | | | - disable triggers prior to BLOB load - better query for loading blob xrefs - Fixes to error handling code
* Back out to_ascii patch from Karel.Bruce Momjian2000-08-04
|
* Add missing files from Karel, tip from Jan.Bruce Momjian2000-08-04
|
* to_ascii( text )Bruce Momjian2000-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* Subclasses inherit constraints of super classes properlyHiroshi Inoue2000-08-04
|
* Fix tuptoaster bugs induced by making bytea toastable. Durn thing wasTom Lane2000-08-04
| | | | | | | | | 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.