summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2005-06-15Update catalog version for recent function additions.Bruce Momjian
2005-06-15Change the implementation of hash join to attempt to avoid unnecessaryNeil Conway
work if either of the join relations are empty. The logic is: (1) if the inner relation's startup cost is less than the outer relation's startup cost and this is not an outer join, read a single tuple from the inner relation via ExecHash() - if NULL, we're done (2) read a single tuple from the outer relation - if NULL, we're done (3) build the hash table on the inner relation - if hash table is empty and this is not an outer join, we're done (4) otherwise, do hash join as usual The implementation uses the new MultiExecProcNode API, per a suggestion from Tom: invoking ExecHash() now produces the first tuple from the Hash node's child node, whereas MultiExecHash() builds the hash table. I had to put in a bit of a kludge to get the row count returned for EXPLAIN ANALYZE to be correct: since ExecHash() is invoked to return a tuple, and then MultiExecHash() is invoked, we would return one too many tuples to EXPLAIN ANALYZE. I hacked around this by just manually detecting this situation and subtracting 1 from the EXPLAIN ANALYZE row count.
2005-06-15Remove old *.backup files when we do pg_stop_backup(). ThisBruce Momjian
prevents a large number of *.backup files from existing in pg_xlog/
2005-06-15Mention we now support BETWEEN SYMMETRIC.Bruce Momjian
Christopher Kings-Lynne
2005-06-15> Here's a patch I added against plperl, originally against beta5, nowBruce Momjian
> against rc1. It simply checks with GetDatabaseEncoding() if the current > database is in UTF-8, and if so, sets the UTF-8 flag on the arguments > that are passed to perl. This means that it isn't necessary to > utf8::upgrade() every string, as perl has no way of knowing offhand > that a string is UTF-8 -- but postgres does, because the database > encoding is specified, so it makes sense to turn the flag on. You > should also be able to properly manipulate UTF-8 strings now from > plperl as opposed to plperlu, because otherwise you'd have to use > encoding 'utf8' which was not allowed. It could also eliminate some > unexpected bugs if you assume that perl knows the string is unicode. It > is enabled only for perl 5.6 and higher, so earlier versions will not > be affected. > > I have been assured by crab that the patch is quite harmless and will > not break anything. It would be great to see it in 8 final! :-) David Kamholz
2005-06-15This patch makes it possible to use the full set of timezones when doingBruce Momjian
"AT TIME ZONE", and not just the shorlist previously available. For example: SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Europe/London'; works fine now. It will also obey whatever DST rules were in effect at just that date, which the previous implementation did not. It also supports the AT TIME ZONE on the timetz datatype. The whole handling of DST is a bit bogus there, so I chose to make it use whatever DST rules are in effect at the time of executig the query. not sure if anybody is actuallyi *using* timetz though, it seems pretty unpredictable just because of this... Magnus Hagander
2005-06-15Support 3 and 4-byte unicode characters.Bruce Momjian
John Hansen
2005-06-15>> Do you agree that using a hashtable for it in general is a good ideaBruce Momjian
>> assuming this sideeffect is removed, though? > >I have no problem with the hashtable, only with preloading it with >everything. What I'd like to see is that the table inherited at fork() >contains just the data for the default timezone. (At least in the >normal case where that setting hasn't been changed since postmaster >start.) Here's a patch doing this. Changes score_timezone not to use pg_tzset(), and thus not loading all the zones in the cache. The actual timezone being picked will be set using set_global_timezone() which in turn calls pg_tzset() and loads it in the cache. Magnus Hagander
2005-06-14Now \d show tablespace of indices per discussion.Bruce Momjian
test=# \d e Table "public.e" Column | Type | Modifiers --------+---------+----------- i | integer | not null j | integer | not null k | integer | Indexes: "e_pkey" PRIMARY KEY, btree (i, j), tablespace "haha" "ei" btree (i) "ej" btree (j), tablespace "haha" "ek" btree (k) Tablespace: "haha" Qingqing Zhou
2005-06-14Add BETWEEN SYMMETRIC.Bruce Momjian
Pavel Stehule
2005-06-14Use ' ' escapes for leading spaces in table values, for use inBruce Momjian
EXPLAIN output. Jean-Paul Argudo
2005-06-14Simplify shared-memory lock data structures as per recent discussion:Tom Lane
it is sufficient to track whether a backend holds a lock or not, and store information about transaction vs. session locks only in the inside-the-backend LocalLockTable. Since there can now be but one PROCLOCK per lock per backend, LockCountMyLocks() is no longer needed, thus eliminating some O(N^2) behavior when a backend holds many locks. Also simplify the LockAcquire/LockRelease API by passing just a 'sessionLock' boolean instead of a transaction ID. The previous API was designed with the idea that per-transaction lock holding would be important for subtransactions, but now that we have subtransactions we know that this is unwanted. While at it, add an 'isTempObject' parameter to LockAcquire to indicate whether the lock is being taken on a temp table. This is not used just yet, but will be needed shortly for two-phase commit.
2005-06-14Add pg_postmaster_start_time() function.Bruce Momjian
Euler Taveira de Oliveira Matthias Schmidt
2005-06-14Have SHOW ALL include variable descriptions.Bruce Momjian
Matthias Schmidt
2005-06-14Attached is a makefile I hacked up to build pg_config under MSVC - theBruce Momjian
reason is that it's required (more or less) in order to build the latest DBD::Pg code and I was testing that out under MSVC. Andrew Dunstan
2005-06-14Add GUC krb_server_hostname so the server hostname can be specified asBruce Momjian
part of service principal. If not set, any service principal matching an entry in the keytab can be used. NEW KERBEROS MATCHING BEHAVIOR FOR 8.1. Todd Kover
2005-06-14The random selection in function linear() could deliver a value equal to maxTom Lane
if geqo_rand() returns exactly 1.0, resulting in failure due to indexing off the end of the pool array. Also, since this is using inexact float math, it seems wise to guard against roundoff error producing values slightly outside the expected range. Per report from bug@zedware.org.
2005-06-14WAL for GiST. It work for online backup and so on, but onTeodor Sigaev
recovery after crash (power loss etc) it may say that it can't restore index and index should be reindexed. Some refactoring code.
2005-06-14Allow the parameters to PL/PgSQL's RAISE statement to be expressions,Neil Conway
instead of just scalar variables. Add regression tests and update the documentation. Along the way, remove some redundant error checking code from exec_stmt_perform(). Original patch from Pavel Stehule, reworked by Neil Conway.
2005-06-14Teach planner to optionally ignore index columns that have an equalityTom Lane
constraint while determining whether the index sort order matches the query's ORDER BY. This for example allows an index on (x,y) to match ... WHERE x = 42 ORDER BY y; It only works for btree indexes, but since those are the only ones we currently have that are ordered at all, that's good enough for now. Per popular demand.
2005-06-14Add -L option to psql to log sessions.Bruce Momjian
Lorne Sunley
2005-06-14Cleanup for "#option dump" in PL/PgSQL: don't print empty ELSE blocks,Neil Conway
fix two grammatical errors, and print the INTO target of EXECUTE INTO if one is specified.
2005-06-13Change the planner to allow indexscan qualification clauses to useTom Lane
nonconsecutive columns of a multicolumn index, as per discussion around mid-May (pghackers thread "Best way to scan on-disk bitmaps"). This turns out to require only minimal changes in btree, and so far as I can see none at all in GiST. btcostestimate did need some work, but its original assumption that index selectivity == heap selectivity was quite bogus even before this.
2005-06-13Per discussion on -hackers, this patch changes psql's "expanded" outputNeil Conway
mode to only affect the presentation of normal query results, not the output of psql slash commands. Documentation updated. I also made some unrelated minor psql cleanup. Per suggestion from Stuart Cooper.
2005-06-13Adjust lo_open() so that specifying INV_READ without INV_WRITE createsTom Lane
a descriptor that uses the current transaction snapshot, rather than SnapshotNow as it did before (and still does if INV_WRITE is set). This means pg_dump will now dump a consistent snapshot of large object contents, as it never could do before. Also, add a lo_create() function that is similar to lo_creat() but allows the desired OID of the large object to be specified. This will simplify pg_restore considerably (but I'll fix that in a separate commit).
2005-06-12This patch removes some old code from libpq that implements a URI-likeNeil Conway
syntax for database connection parameters. It has been inside an #ifdef NOT_USED block since 2001 or so and is marked as "broken", so I don't think it is likely to be rehabilitated any time soon.
2005-06-12libpq was not consistently checking for memory allocation failures. ThisNeil Conway
patch adds missing checks to the call sites of malloc(), strdup(), PQmakeEmptyPGresult(), pqResultAlloc(), and pqResultStrdup(), and updates the documentation. Per original report from Volkan Yazici about PQmakeEmptyPGresult() not checking for malloc() failure.
2005-06-10Separate predicate-testing code out of indxpath.c, making it a moduleTom Lane
in its own right. As proposed by Simon Riggs, but with some editorializing of my own.
2005-06-10Adjust comment about %t and %s to cover %m as well. Some trivialTom Lane
code beautification too.
2005-06-10Fix bug in MIC -> EUC_JP conversion. Per Atsushi Ogawa.Tatsuo Ishii
2005-06-10Implement two new special variables in PL/PgSQL: SQLSTATE and SQLERRM.Neil Conway
These contain the SQLSTATE and error message of the current exception, respectively. They are scope-local variables that are only defined in exception handlers (so attempting to reference them outside an exception handler is an error). Update the regression tests and the documentation. Also, do some minor related cleanup: export an unpack_sql_state() function from the backend and use it to unpack a SQLSTATE into a string, and add a free_var() function to pl_exec.c Original patch from Pavel Stehule, review by Neil Conway.
2005-06-10Use saveHistory so we get a nice error message on failure.Bruce Momjian
Andreas Seltenreich
2005-06-10the following patch makes the filename used to store the readlineBruce Momjian
history customizable through a variable named HISTFILE, analogous to psql's already implemented HISTCONTROL and HISTSIZE variables, and bash's HISTFILE-Variable. The motivation was to be able to get psql to maintain separate histories for separate databases. This is now easily achievable through a line like the following in ~/.psqlrc: \set HISTFILE ~/.psql_history-:DBNAME Andreas Seltenreich
2005-06-10More Win32 tilde code comments.Bruce Momjian
2005-06-10Add comment on tilde expansion.Bruce Momjian
2005-06-10Remove unneeded variable test, per Tom.Bruce Momjian
2005-06-10Quick hack to allow the outer query's tuple_fraction to be passed downTom Lane
to a subquery if the outer query is simple enough that the LIMIT can be reflected directly to the subquery. This didn't use to be very interesting, because a subquery that couldn't have been flattened into the upper query was usually not going to be very responsive to tuple_fraction anyway. But with new code that allows UNION ALL subqueries to pay attention to tuple_fraction, this is useful to do. In particular this lets the optimization occur when the UNION ALL is directly inside a view.
2005-06-10Add the "PGPASSFILE" environment variable to specify to the passwordBruce Momjian
file. Andrew Dunstan
2005-06-10If a LIMIT is applied to a UNION ALL query, plan each UNION arm asTom Lane
if the limit were directly applied to it. This does not actually add a LIMIT plan node to the generated subqueries --- that would be useless overhead --- but it does cause the planner to prefer fast- start plans when the limit is small. After an idea from Phil Endecott.
2005-06-10Revise searching of subplan target lists to use something more efficientTom Lane
than tlist_member calls. Building a large join tlist is still O(N^2), but with a much smaller constant factor than before.
2005-06-09This patch shows the full path name when doing a \s in psql,Bruce Momjian
if you have previously issued a \cd command. Greg Sabino Mullane
2005-06-09Free buffer allocated via malloc (process is short-lived, but fix it anyway).Bruce Momjian
2005-06-09Mention prefix %t has no milliseconds.Bruce Momjian
2005-06-09Restructure log_line_prefix options to be clearer:Bruce Momjian
#log_line_prefix = '' # %u = user name # %d = database name # %r = remote host and port # %h = remote host # %p = PID # %t = timestamp # %m = timestamp with milliseconds # %i = command tag # %c = session id # %l = session line number # %s = session start timestamp # %x = transaction id # %q = stop here in non-session processes # %% = '%' # e.g. '<%u%%%d> '
2005-06-09This patch against 8.0.0beta1 source adds log_line_prefix options forBruce Momjian
millisecond timestamps (%m) and remote host (%h). The milliseconds are useful for QPS measurements. Ed L.
2005-06-09Fix typo in comment, per Alvaro.Tom Lane
2005-06-09Fix assign_datestyle() so that it doesn't misleadingly complain aboutTom Lane
'conflicting datestyle specifications' for input that's actually only redundant, such as SET DATESTYLE = MDY, MDY. Per recent gripe.
2005-06-09Make SPI set SPI_processed for CREATE TABLE AS / SELECT INTO commands;Tom Lane
this in turn causes CREATE TABLE AS in plpgsql to set ROW_COUNT. This is how it behaved before 7.4; I had unintentionally changed the behavior in a bit of sloppy micro-optimization.
2005-06-09Add missing #include -- mea culpa.Tom Lane
2005-06-09Defend against omitted paramLengths[] array in PQsendQueryParams.Tom Lane
Per Volkan Yazici.