summaryrefslogtreecommitdiff
path: root/src/include
AgeCommit message (Collapse)Author
2003-06-06Implement outer-level aggregates to conform to the SQL spec, withTom Lane
extensions to support our historical behavior. An aggregate belongs to the closest query level of any of the variables in its argument, or the current query level if there are no variables (e.g., COUNT(*)). The implementation involves adding an agglevelsup field to Aggref, and treating outer aggregates like outer variables at planning time.
2003-06-05Support for Intel compiler on LinuxPeter Eisentraut
2003-06-02In src/include/mb/pg_wchar.h we have:Bruce Momjian
#define PG_ENCODING_BE_LAST PG_ISO_8859_8 #define PG_ENCODING_FE_LAST PG_WIN1256 but the last client encoding in the enum list is actually PG_GB18030 and it seems that #define PG_ENCODING_IS_CLIEN_ONLY(_enc) \ (((_enc) > PG_ENCODING_BE_LAST && (_enc) <= PG_ENCODING_FE_LAST) can never be true. I think the define should read #define PG_ENCODING_FE_LAST PG_GB18030 On the other hand, perhaps no-one cares, because PG_ENCODING_IS_CLIEN_ONLY is never used. -- Oliver Elphick Oliver.Elphick@lfix.co.uk
2003-05-28Fix some planner performance problems with large WHERE clauses, byTom Lane
introducing new 'FastList' list-construction subroutines to use in hot spots. This avoids the O(N^2) behavior of repeated lappend's by keeping a tail pointer, while not changing behavior by reversing list order as the lcons() method would do.
2003-05-28Fix things so that an error occuring during standalone-backend processingTom Lane
in initdb will result in exit(1), allowing the initdb script to realize that there's something wrong.
2003-05-28In bootstrap and standalone-backend modes, do not sort LOG elevel outTom Lane
of order; the 'server log' output is actually client output in these scenarios and we ought to treat elevels the same way as in the client case. This allows initdb to not send backend stderr to /dev/null anymore, which makes it much more likely that people will notice problems during initdb.
2003-05-28Replace functional-index facility with expressional indexes. Any columnTom Lane
of an index can now be a computed expression instead of a simple variable. Restrictions on expressions are the same as for predicates (only immutable functions, no sub-selects). This fixes problems recently introduced with inlining SQL functions, because the inlining transformation is applied to both expression trees so the planner can still match them up. Along the way, improve efficiency of handling index predicates (both predicates and index expressions are now cached by the relcache) and fix 7.3 oversight that didn't record dependencies of predicate expressions.
2003-05-27Make debug_ GUC varables output DEBUG1 rather than LOG, and mention inBruce Momjian
docs that CLIENT/LOG_MIN_MESSAGES now controls debug_* output location. Doc changes included.
2003-05-27Add configure thread tests.Bruce Momjian
2003-05-26Cause CHAR(n) to TEXT or VARCHAR conversion to automatically strip trailingTom Lane
blanks, in hopes of reducing the surprise factor for newbies. Remove redundant operators for VARCHAR (it depends wholly on TEXT operations now). Clean up resolution of ambiguous operators/functions to avoid surprising choices for domains: domains are treated as equivalent to their base types and binary-coercibility is no longer considered a preference item when choosing among multiple operators/functions. IsBinaryCoercible now correctly reflects the notion that you need *only* relabel the type to get from type A to type B: that is, a domain is binary-coercible to its base type, but not vice versa. Various marginal cleanup, including merging the essentially duplicate resolution code in parse_func.c and parse_oper.c. Improve opr_sanity regression test to understand about binary compatibility (using pg_cast), and fix a couple of small errors in the catalogs revealed thereby. Restructure "special operator" handling to fetch operators via index opclasses rather than hardwiring assumptions about names (cleans up the pattern_ops stuff a little).
2003-05-23Improve implementation of btrim/ltrim/rtrim: provide a special case forTom Lane
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.
2003-05-22Add define for missing EAI_ADDRFAMILY in BSD/OS 4.3.Bruce Momjian
2003-05-22Fix compilation on Cygwin.Peter Eisentraut
2003-05-22Adjust configure so that extern tzname[] will be checked forTom Lane
independently of whether the struct tm tm_zone member exists. Also run autoheader, which seems not to have been done lately; it added about three more things to pg_config.h.in than I was expecting...
2003-05-19Rename Win32 include directory from win32_include to win32.Bruce Momjian
2003-05-18Add code to test for unknown timezone names (following some ideas fromTom Lane
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.
2003-05-16Allow interfaces to compile under MingGW/Win32 by adding _P to symbolsBruce Momjian
in ecpg.
2003-05-16Reorganize Win32 includes to only include <port.h> after system includesBruce Momjian
under Win32. Also fix other compile issues.
2003-05-15Revert change of inclusion order for pg_config_os.h; this broke plperlTom Lane
on Linux and would have who knows what unpleasant effects on other platforms. If you need another include file for Windows, then add it; don't go messing with the semantics of every other port's include files.
2003-05-15Add missing win32 file --- seems best way to find these is to justBruce Momjian
commmit then do a cvs update again.
2003-05-15Allow Win32 to compile under MinGW. Major changes are:Bruce Momjian
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
2003-05-15Indexing support for pattern matching operations via separate operatorPeter Eisentraut
class when lc_collate is not C.
2003-05-14Add text(cidr) cast, per recent discussion. I'm not bothering toTom Lane
force an initdb for this.
2003-05-14Backend support for autocommit removed, per recent discussions. TheTom Lane
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.
2003-05-13More binary I/O routines.Tom Lane
2003-05-13Change pg_amop's index on (amopclaid,amopopr) to index (amopopr,amopclaid).Tom Lane
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.
2003-05-12Add binary I/O routines for a bunch more datatypes. Still a few to go,Tom Lane
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.
2003-05-09Implement array_send/array_recv (binary I/O for arrays). This exposedTom Lane
the folly of not passing element type to typsend/typreceive, so fix that.
2003-05-09COPY BINARY uses the new binary I/O routines. Update a few more datatypesTom Lane
so that COPY BINARY regression test passes.
2003-05-09Implement new-protocol binary I/O support in DataRow, Bind, and FunctionCallTom Lane
messages. Binary I/O is now up and working, but only for a small set of datatypes (integers, text, bytea).
2003-05-09More cleanups now that we have crypt().Bruce Momjian
2003-05-09Remove rint() prototype from QNX.Bruce Momjian
2003-05-09Add rint() to /port, remove from qnx/.Bruce Momjian
2003-05-09Binary send/receive routines for a few basic datatypes --- enough forTom Lane
testing purposes.
2003-05-09Add opendir/readdir/closedir() for Win32.Bruce Momjian
Keep SRA copyright on file because it contains BSD license clause.
2003-05-08Reinstate pg_type's typsend and typreceive columns. They don't do muchTom Lane
yet, but they're there. Also some editorial work on CREATE TYPE reference page.
2003-05-08I think we're done with protocol instability, so mark server and libpqTom Lane
as speaking the one true 3.0 protocol.
2003-05-08Update 3.0 protocol support to match recent agreements about how toTom Lane
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.
2003-05-08Pass shared memory address on command line to exec'ed backend.Bruce Momjian
Allow backends to attached to specified shared memory address.
2003-05-07Change alternate database location patch to test for symlink() ratherBruce Momjian
than WIN32.
2003-05-06Pass shared memory id and socket descriptor number on command line forBruce Momjian
fork/exec.
2003-05-06Add display of eventual result RowDescription (if any) to the outputTom Lane
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.
2003-05-06Restructure command destination handling so that we pass aroundTom Lane
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.
2003-05-06Implement feature of new FE/BE protocol whereby RowDescription identifiesTom Lane
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.
2003-05-05Ditch ExecGetTupType() in favor of the much simpler ExecGetResultType(),Tom Lane
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.
2003-05-05Extended query protocol: parse, bind, execute, describe FE/BE messages.Tom Lane
Only lightly tested as yet, since libpq doesn't know anything about 'em.
2003-05-03Handle clog structure in shared memory in exec() case, for Win32.Bruce Momjian
2003-05-02SECOND ATTEMPTBruce Momjian
Dump/read non-default GUC values for use by exec'ed backend, for Win32.
2003-05-02Back out second part of patch.Bruce Momjian
2003-05-02Back out last commit --- wrong patch.Bruce Momjian