aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* > Here's a patch I added against plperl, originally against beta5, nowBruce Momjian2005-06-15
| | | | | | | | | | | | | | | | | | | | | > 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
* This patch makes it possible to use the full set of timezones when doingBruce Momjian2005-06-15
| | | | | | | | | | | | | | | | | | "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
* Support 3 and 4-byte unicode characters.Bruce Momjian2005-06-15
| | | | John Hansen
* >> Do you agree that using a hashtable for it in general is a good ideaBruce Momjian2005-06-15
| | | | | | | | | | | | | | | | | >> 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
* Now \d show tablespace of indices per discussion.Bruce Momjian2005-06-14
| | | | | | | | | | | | | | | | | | 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
* Add BETWEEN SYMMETRIC.Bruce Momjian2005-06-14
| | | | Pavel Stehule
* Use ' ' escapes for leading spaces in table values, for use inBruce Momjian2005-06-14
| | | | | | EXPLAIN output. Jean-Paul Argudo
* Simplify shared-memory lock data structures as per recent discussion:Tom Lane2005-06-14
| | | | | | | | | | | | | | | | 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.
* Add pg_postmaster_start_time() function.Bruce Momjian2005-06-14
| | | | | Euler Taveira de Oliveira Matthias Schmidt
* Have SHOW ALL include variable descriptions.Bruce Momjian2005-06-14
| | | | Matthias Schmidt
* Attached is a makefile I hacked up to build pg_config under MSVC - theBruce Momjian2005-06-14
| | | | | | | 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
* Add GUC krb_server_hostname so the server hostname can be specified asBruce Momjian2005-06-14
| | | | | | | | | 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
* The random selection in function linear() could deliver a value equal to maxTom Lane2005-06-14
| | | | | | | 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.
* WAL for GiST. It work for online backup and so on, but onTeodor Sigaev2005-06-14
| | | | | | | recovery after crash (power loss etc) it may say that it can't restore index and index should be reindexed. Some refactoring code.
* Allow the parameters to PL/PgSQL's RAISE statement to be expressions,Neil Conway2005-06-14
| | | | | | | | 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.
* Teach planner to optionally ignore index columns that have an equalityTom Lane2005-06-14
| | | | | | | | | 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.
* Add -L option to psql to log sessions.Bruce Momjian2005-06-14
| | | | Lorne Sunley
* Cleanup for "#option dump" in PL/PgSQL: don't print empty ELSE blocks,Neil Conway2005-06-14
| | | | | fix two grammatical errors, and print the INTO target of EXECUTE INTO if one is specified.
* Change the planner to allow indexscan qualification clauses to useTom Lane2005-06-13
| | | | | | | | | 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.
* Per discussion on -hackers, this patch changes psql's "expanded" outputNeil Conway2005-06-13
| | | | | | 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.
* Adjust lo_open() so that specifying INV_READ without INV_WRITE createsTom Lane2005-06-13
| | | | | | | | | | 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).
* This patch removes some old code from libpq that implements a URI-likeNeil Conway2005-06-12
| | | | | | 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.
* libpq was not consistently checking for memory allocation failures. ThisNeil Conway2005-06-12
| | | | | | | 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.
* Separate predicate-testing code out of indxpath.c, making it a moduleTom Lane2005-06-10
| | | | | in its own right. As proposed by Simon Riggs, but with some editorializing of my own.
* Adjust comment about %t and %s to cover %m as well. Some trivialTom Lane2005-06-10
| | | | code beautification too.
* Fix bug in MIC -> EUC_JP conversion. Per Atsushi Ogawa.Tatsuo Ishii2005-06-10
|
* Implement two new special variables in PL/PgSQL: SQLSTATE and SQLERRM.Neil Conway2005-06-10
| | | | | | | | | | | | | | 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.
* Use saveHistory so we get a nice error message on failure.Bruce Momjian2005-06-10
| | | | Andreas Seltenreich
* the following patch makes the filename used to store the readlineBruce Momjian2005-06-10
| | | | | | | | | | | | | | 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
* More Win32 tilde code comments.Bruce Momjian2005-06-10
|
* Add comment on tilde expansion.Bruce Momjian2005-06-10
|
* Remove unneeded variable test, per Tom.Bruce Momjian2005-06-10
|
* Quick hack to allow the outer query's tuple_fraction to be passed downTom Lane2005-06-10
| | | | | | | | | | | 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.
* Add the "PGPASSFILE" environment variable to specify to the passwordBruce Momjian2005-06-10
| | | | | | file. Andrew Dunstan
* If a LIMIT is applied to a UNION ALL query, plan each UNION arm asTom Lane2005-06-10
| | | | | | | 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.
* Revise searching of subplan target lists to use something more efficientTom Lane2005-06-10
| | | | | than tlist_member calls. Building a large join tlist is still O(N^2), but with a much smaller constant factor than before.
* This patch shows the full path name when doing a \s in psql,Bruce Momjian2005-06-09
| | | | | | if you have previously issued a \cd command. Greg Sabino Mullane
* Free buffer allocated via malloc (process is short-lived, but fix it anyway).Bruce Momjian2005-06-09
|
* Mention prefix %t has no milliseconds.Bruce Momjian2005-06-09
|
* Restructure log_line_prefix options to be clearer:Bruce Momjian2005-06-09
| | | | | | | | | | | | | | | | | | #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> '
* This patch against 8.0.0beta1 source adds log_line_prefix options forBruce Momjian2005-06-09
| | | | | | | millisecond timestamps (%m) and remote host (%h). The milliseconds are useful for QPS measurements. Ed L.
* Fix typo in comment, per Alvaro.Tom Lane2005-06-09
|
* Fix assign_datestyle() so that it doesn't misleadingly complain aboutTom Lane2005-06-09
| | | | | 'conflicting datestyle specifications' for input that's actually only redundant, such as SET DATESTYLE = MDY, MDY. Per recent gripe.
* Make SPI set SPI_processed for CREATE TABLE AS / SELECT INTO commands;Tom Lane2005-06-09
| | | | | | 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.
* Add missing #include -- mea culpa.Tom Lane2005-06-09
|
* Defend against omitted paramLengths[] array in PQsendQueryParams.Tom Lane2005-06-09
| | | | Per Volkan Yazici.
* Avoid bare 'struct Node;' declaration --- provokes annoying warningsTom Lane2005-06-09
| | | | on some compilers.
* \(rs should be \\(rs, per Tom.Bruce Momjian2005-06-09
|
* Put a critical section around update of hash index metapage. PerTom Lane2005-06-09
| | | | discussion with Qingqing Zhou.
* Since I needed this feature badly, I added the -n / --schema switch toBruce Momjian2005-06-09
| | | | | | | | pg_restore. It restores the given schemaname only. It can be used in conjunction with the -t and other switches to make the selection very fine grained. Richard van den Bergg, CISSP