aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Improve implementation of btrim/ltrim/rtrim: provide a special case forTom Lane2003-05-23
| | | | | | | single-byte encodings, and a direct C implementation of the single-argument forms (where spaces are always what gets trimmed). This is in preparation for using rtrim1() as the bpchar-to-text cast operator, but is a useful performance improvement even if we decide not to do that.
* Add defense against possibility that tzname[] doesn't exist.Tom Lane2003-05-22
|
* Repair sometimes-incorrect computation of StartUpID after a crash, perTom Lane2003-05-22
| | | | | | | example from Rao Kumar. This is a very corner corner-case, requiring a minimum of three closely-spaced database crashes and an unlucky positioning of the second recovery's checkpoint record before you'd notice any problem. But the consequences are dire enough that it's a must-fix.
* Fix coredump in pg_get_triggerdef, ensure function name is schema-Tom Lane2003-05-20
| | | | qualified when necessary, simplify argument-printing code.
* Add documentation for information schema, and some corrections on somePeter Eisentraut2003-05-18
| | | | views.
* Add code to test for unknown timezone names (following some ideas fromTom Lane2003-05-18
| | | | | | | | Ross Reedstrom, a couple months back) and to detect timezones that are using leap-second timekeeping. The unknown-zone-name test is pretty heuristic and ugly, but it seems better than the old behavior of just switching to GMT given a bad name. Also make DecodePosixTimezone() a tad more robust.
* Remove use of geteuid under Win32.Bruce Momjian2003-05-16
|
* Add missing #include.Tom Lane2003-05-15
|
* Add copydir() function because xcopy doesn't work in XP without aBruce Momjian2003-05-15
| | | | window.
* Allow Win32 to compile under MinGW. Major changes are:Bruce Momjian2003-05-15
| | | | | | | | | | | | | | | Win32 port is now called 'win32' rather than 'win' add -lwsock32 on Win32 make gethostname() be only used when kerberos4 is enabled use /port/getopt.c new /port/opendir.c routines disable GUC unix_socket_group on Win32 convert some keywords.c symbols to KEYWORD_P to prevent conflict create new FCNTL_NONBLOCK macro to turn off socket blocking create new /include/port.h file that has /port prototypes, move out of c.h new /include/port/win32_include dir to hold missing include files work around ERROR being defined in Win32 includes
* Indexing support for pattern matching operations via separate operatorPeter Eisentraut2003-05-15
| | | | class when lc_collate is not C.
* Fix oversight: ignore-till-SYNC state should not ignore EOF ...Tom Lane2003-05-14
|
* Backend support for autocommit removed, per recent discussions. TheTom Lane2003-05-14
| | | | | | only remnant of this failed experiment is that the server will take SET AUTOCOMMIT TO ON. Still TODO: provide some client-side autocommit logic in libpq.
* In RowDescription messages, report columns of domain datatypes as havingTom Lane2003-05-13
| | | | | | the type OID and typmod of the underlying base type. Per discussions a few weeks ago with Andreas Pflug and others. Note that this behavioral change affects both old- and new-protocol clients.
* More binary I/O routines.Tom Lane2003-05-13
|
* Change pg_amop's index on (amopclaid,amopopr) to index (amopopr,amopclaid).Tom Lane2003-05-13
| | | | | | | This makes no difference for existing uses, but allows SelectSortFunction() and pred_test_simple_clause() to use indexscans instead of seqscans to locate entries for a particular operator in pg_amop. Better yet, they can use the SearchSysCacheList() API to cache the search results.
* Add binary I/O routines for a bunch more datatypes. Still a few to go,Tom Lane2003-05-12
| | | | | but that was enough tedium for one day. Along the way, move the few support routines for types xid and cid into a more logical place.
* Avoid unnecessary copying of parameter values in BIND. This allowsTom Lane2003-05-12
| | | | efficient insertion of large bytea values through the BIND interface.
* Apply fixes for problems with dropped columns whose types have also beenTom Lane2003-05-12
| | | | | | | | | | | dropped. The simplest fix for INSERT/UPDATE cases turns out to be for preptlist.c to insert NULLs of a known-good type (I used INT4) rather than making them match the deleted column's type. Since the representation of NULL is actually datatype-independent, this should work fine. I also re-reverted the patch to disable the use_physical_tlist optimization in the presence of dropped columns. It still doesn't look worth the trouble to be smarter, if there are no other bugs to fix. Added a regression test to catch future problems in this area.
* Revert previous change --- turns out the underlying problem affectsTom Lane2003-05-11
| | | | | more cases than I thought, so ExecTypeFromTL() will have to be fixed anyway.
* Disable the recently-added use_physical_tlist optimization in casesTom Lane2003-05-11
| | | | | | | | where the table contains dropped columns. If the columns are dropped, then their types may be gone as well, which causes ExecTypeFromTL() to fail if the dropped columns appear in a plan node's tlist. This could be worked around but I don't think the optimization is valuable enough to be worth the trouble.
* Make use of new error context stack mechanism to allow random errorsTom Lane2003-05-10
| | | | | | | | | | detected during buffer dump to be labeled with the buffer location. For example, if a page LSN is clobbered, we now produce something like ERROR: XLogFlush: request 2C000000/8468EC8 is not satisfied --- flushed only to 0/8468EF0 CONTEXT: writing block 0 of relation 428946/566240 whereas before there was no convenient way to find out which page had been trashed.
* In child-crashed log messages, identify a checkpoint process as suchTom Lane2003-05-10
| | | | instead of calling it a 'server process'.
* Adjust CreateCheckpoint so that buffer dumping activities and cleanup ofTom Lane2003-05-10
| | | | | | dead xlog segments are not considered part of a critical section. It is not necessary to force a database-wide panic if we get a failure in these operations. Per recent trouble reports.
* Implement array_send/array_recv (binary I/O for arrays). This exposedTom Lane2003-05-09
| | | | the folly of not passing element type to typsend/typreceive, so fix that.
* COPY BINARY uses the new binary I/O routines. Update a few more datatypesTom Lane2003-05-09
| | | | so that COPY BINARY regression test passes.
* Now that fastpath protocol allows null arguments to be passed,Tom Lane2003-05-09
| | | | fastpath.c had better check for strict functions.
* Implement new-protocol binary I/O support in DataRow, Bind, and FunctionCallTom Lane2003-05-09
| | | | | messages. Binary I/O is now up and working, but only for a small set of datatypes (integers, text, bytea).
* Remove another old rint() replacement.Bruce Momjian2003-05-09
|
* Add rint() to /port, remove from qnx/.Bruce Momjian2003-05-09
|
* Pass canAcceptConnections to exec'ed backend, for Jan.Bruce Momjian2003-05-09
|
* Binary send/receive routines for a few basic datatypes --- enough forTom Lane2003-05-09
| | | | testing purposes.
* Reinstate pg_type's typsend and typreceive columns. They don't do muchTom Lane2003-05-08
| | | | | yet, but they're there. Also some editorial work on CREATE TYPE reference page.
* Write non-defaults file before signalling the children to reread it.Bruce Momjian2003-05-08
|
* Move attached to shared memory out into a separate function for clarity.Bruce Momjian2003-05-08
|
* I think we're done with protocol instability, so mark server and libpqTom Lane2003-05-08
| | | | as speaking the one true 3.0 protocol.
* Update 3.0 protocol support to match recent agreements about how toTom Lane2003-05-08
| | | | | | | handle multiple 'formats' for data I/O. Restructure CommandDest and DestReceiver stuff one more time (it's finally starting to look a bit clean though). Code now matches latest 3.0 protocol document as far as message formats go --- but there is no support for binary I/O yet.
* Pass shared memory address on command line to exec'ed backend.Bruce Momjian2003-05-08
| | | | Allow backends to attached to specified shared memory address.
* Change alternate database location patch to test for symlink() ratherBruce Momjian2003-05-07
| | | | than WIN32.
* Pass shared memory id and socket descriptor number on command line forBruce Momjian2003-05-06
| | | | fork/exec.
* Add display of eventual result RowDescription (if any) to the outputTom Lane2003-05-06
| | | | | | of Describe on a prepared statement. This was in the original 3.0 protocol proposal, but I took it out for reasons that seemed good at the time. Put it back per yesterday's pghackers discussion.
* Ensure that an Execute operation can't send tuples in cases whereTom Lane2003-05-06
| | | | | | | Describe would claim that no tuples will be returned. Only affects SELECTs added to non-SELECT base queries by rewrite rules. If you want to see the output of such a select, you gotta use 'simple Query' protocol.
* Restructure command destination handling so that we pass aroundTom Lane2003-05-06
| | | | | | | | | | | | | | DestReceiver pointers instead of just CommandDest values. The DestReceiver is made at the point where the destination is selected, rather than deep inside the executor. This cleans up the original kluge implementation of tstoreReceiver.c, and makes it easy to support retrieving results from utility statements inside portals. Thus, you can now do fun things like Bind and Execute a FETCH or EXPLAIN command, and it'll all work as expected (e.g., you can Describe the portal, or use Execute's count parameter to suspend the output partway through). Implementation involves stuffing the utility command's output into a Tuplestore, which would be kind of annoying for huge output sets, but should be quite acceptable for typical uses of utility commands.
* Rename internal variables DBName|dbName to dbname, for consistency.Bruce Momjian2003-05-06
|
* Comment out some of the conditional tests until we have exec().Bruce Momjian2003-05-06
| | | | Reorder non-default variable loading until PGDATA is defined.
* Implement feature of new FE/BE protocol whereby RowDescription identifiesTom Lane2003-05-06
| | | | | | | | | the column by table OID and column number, if it's a simple column reference. Along the way, get rid of reskey/reskeyop fields in Resdoms. Turns out that representation was not convenient for either the planner or the executor; we can make the planner deliver exactly what the executor wants with no more effort. initdb forced due to change in stored rule representation.
* Ditch ExecGetTupType() in favor of the much simpler ExecGetResultType(),Tom Lane2003-05-05
| | | | | | which does the same thing. Perhaps at one time there was a reason to allow plan nodes to store their result types in different places, but AFAICT that's been unnecessary for a good while.
* Not sure why parser() was still doing clearerr(stdin) ... but it'sTom Lane2003-05-05
| | | | *got* to be pointless.
* Extended query protocol: parse, bind, execute, describe FE/BE messages.Tom Lane2003-05-05
| | | | Only lightly tested as yet, since libpq doesn't know anything about 'em.
* Disable alternate locations on Win32 because it doesn't support symlinks.Bruce Momjian2003-05-04
|