aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* 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
* Please find attached a patch (diff -c against cvs HEAD) to add aBruce Momjian2005-06-09
| | | | | | | | | | | | | | | | function that accepts a double precision argument assumed to be a Unix epoch timestamp and returns timestamp with time zone, and accompanying documentation. Usage: test=# select to_timestamp(200120400); to_timestamp ------------------------ 1976-05-05 14:00:00+09 (1 row) Michael Glaesemann
* I've created a patch which adds support for troff "-ms" output toBruce Momjian2005-06-09
| | | | | | | | | | | | | | | | | | | | | | | psql. i.e. "\pset format troff-ms". The patch also corrects some problems with the "latex" format, notably defining an extra column in the output table, and correcting some alignment issues; it also changes the output to match the border setting as documented in the manual page and as shown with the "aligned" format. The troff-ms output is mostly identical to the latex output allowing for the differences between the two typesetters. The output should be saved in a file and piped as follows: cat file | tbl | troff -T ps -ms > file.ps or tbl file | troff -T ps -ms > file.ps Because it contains tabs, you'll need to redirect psql output or use "script", rather than pasting from a terminal window, due to the tabs which can be replaced with spaces. Roger Leigh
* Simplify the planner's join clause management by storing join clausesTom Lane2005-06-09
| | | | | | | | | | of a relation in a flat 'joininfo' list. The former arrangement grouped the join clauses according to the set of unjoined relids used in each; however, profiling on test cases involving lots of joins proves that that data structure is a net loss. It takes more time to group the join clauses together than is saved by avoiding duplicate tests later. It doesn't help any that there are usually not more than one or two clauses per group ...
* Marginal hack to avoid spending a lot of time in find_join_rel duringTom Lane2005-06-08
| | | | | large planning problems: when the list of join rels gets too long, make an auxiliary hash table that hashes on the identifying Bitmapset.
* Remove grammar productions for prefix and postfix % and ^ operators,Tom Lane2005-06-08
| | | | | | | | | | as well as the existing pg_catalog entries for prefix and postfix %. These have never been documented, though they did appear in one old regression test. This avoids surprising behavior in cases like "SELECT -25 % -10". Per recent discussion. Note: although there is a catalog change here, I did not force initdb since there's no harm in leaving the inaccessible entries in one's copy of pg_operator.
* Change WAL-logging scheme for multixacts to be more like regularTom Lane2005-06-08
| | | | | | transaction IDs, rather than like subtrans; in particular, the information now survives a database restart. Per previous discussion, this is essential for PITR log shipping and for 2PC.
* Correct an omission in the syntax error message emitted by EXECUTE INTONeil Conway2005-06-08
| | | | in pl/pgsql.
* Mention ipcrm and ipcclean in error message.Bruce Momjian2005-06-07
|
* Use just NULL not NULL::TEXT --- the latter coding is unnecessary andTom Lane2005-06-07
| | | | not schema-safe. Per report from Jochem van Dieten.
* Add a function lastval(), which returns the value returned by theNeil Conway2005-06-07
| | | | | | last nextval() or setval() performed by the current session. Update the docs, add regression tests, and bump the catalog version. Patch from Dennis Björklund, various improvements by Neil Conway.
* Add support for an optional INTO clause to PL/PgSQL's EXECUTE command.Neil Conway2005-06-07
| | | | | | This allows the result of executing a SELECT to be assigned to a row variable, record variable, or list of scalars. Docs and regression tests updated. Per Pavel Stehule, improvements and cleanup by Neil Conway.
* Ipcrm -> ipcclean in error message:Bruce Momjian2005-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --------------------------------------------------------------------------- While playing around, I got the following error message: -- FATAL: pre-existing shared memory block (key 5432001, ID 90898435) is still in use HINT: If you're sure there are no old server processes still running, remove the shared memory block with the command "ipcrm", or just delete the file "/home/hlinnaka/pgsql/data/postmaster.pid". --- Thats normal because I used "kill -9 postmaster" to shut down. The hint advises me to use "ipcrm", but there's the "ipcclean" script in bin for just this purpose. The hint should probably advise to use ipcclean. The attached patch replaces all occurances of "ipcrm" with "ipcclean" in src/backend/utils/init/miscinit.c and all the translations in src/backend/po. While reviewing the patch, I noticed a likely typo in hr.po. While I don't speak Croatian, the translation seems to advise to use the "icpm(1)" command. I changed that to "ipcclean" too. Heikki Linnakangas
* Modify XLogInsert API to make callers specify whether pages to be backedTom Lane2005-06-06
| | | | | | | | up have the standard layout with unused space between pd_lower and pd_upper. When this is set, XLogInsert will omit the unused space without bothering to scan it to see if it's zero. That saves time in XLogInsert, and also allows reversion of my earlier patch to make PageRepairFragmentation et al explicitly re-zero freed space. Per suggestion by Heikki Linnakangas.
* Remove the mostly-stubbed-out-anyway support routines for WAL UNDO.Tom Lane2005-06-06
| | | | | | That code is never going to be used in the foreseeable future, and where it's more than a stub it's making the redo routines harder to read.
* Nab some low-hanging fruit: replace the planner's base_rel_list andTom Lane2005-06-06
| | | | | | | | other_rel_list with a single array indexed by rangetable index. This reduces find_base_rel from O(N) to O(1) without any real penalty. While find_base_rel isn't one of the major bottlenecks in any profile I've seen so far, it was starting to creep up on the radar screen for complex queries --- so might as well fix it.
* Remove planner's private fields from Query struct, and put them intoTom Lane2005-06-05
| | | | | | | | a new PlannerInfo struct, which is passed around instead of the bare Query in all the planning code. This commit is essentially just a code-beautification exercise, but it does open the door to making larger changes to the planner data structures without having to muck with the widely-known Query struct.
* Here's a patch to do the following:Bruce Momjian2005-06-05
| | | | | | | | | 1. Rename spi_return_next to return_next. 2. Add a new test for return_next. 3. Update the expected output. 4. Update the documentation. Abhijit Menon-Sen
* Code for SET/SHOW TIME ZONE with a fixed-interval timezone was notTom Lane2005-06-05
| | | | prepared for HAVE_INT64_TIMESTAMP. Per report from Guillaume Beaudoin.
* Replace the parser's namespace tree (which formerly had the sameTom Lane2005-06-05
| | | | | | | | | representation as the jointree) with two lists of RTEs, one showing the RTEs accessible by qualified names, and the other showing the RTEs accessible by unqualified names. I think this is conceptually simpler than what we did before, and it's sure a whole lot easier to search. This seems to eliminate the parse-time bottleneck for deeply nested JOIN structures that was exhibited by phil@vodafone.
* Back out patch:Bruce Momjian2005-06-04
| | | | | | | | | | | | | | | | | | | | --------------------------------------------------------------------------- Tom Lane <tgl@sss.pgh.pa.us> writes: > a_ogawa <a_ogawa@hi-ho.ne.jp> writes: > > It is a reasonable idea. However, the majority part of MemSet was not > > able to be avoided by this idea. Because the per-tuple contexts are used > > at the early stage of executor. > > Drat. Well, what about changing that? We could introduce additional > contexts or change the startup behavior so that the ones that are > frequently reset don't have any data in them unless you are working > with pass-by-ref values inside the inner loop. That might be possible. However, I think that we should change only aset.c about this article. I thought further: We can check whether context was used from the last reset even when blocks list is not empty. Please see attached patch.
* Add comment for multi-byte computation.Bruce Momjian2005-06-04
|
* Allow kerberos name and username case sensitivity to be specified fromBruce Momjian2005-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | postgresql.conf. --------------------------------------------------------------------------- Here's an updated version of the patch, with the following changes: 1) No longer uses "service name" as "application version". It's instead hardcoded as "postgres". It could be argued that this part should be backpatched to 8.0, but it doesn't make a big difference until you can start changing it with GUC / connection parameters. This change only affects kerberos 5, not 4. 2) Now downcases kerberos usernames when the client is running on win32. 3) Adds guc option for "krb_caseins_users" to make the server ignore case mismatch which is required by some KDCs such as Active Directory. Off by default, per discussion with Tom. This change only affects kerberos 5, not 4. 4) Updated so it doesn't conflict with the rendevouz/bonjour patch already in ;-) Magnus Hagander
* At 2005-05-21 20:18:50 +0530, ams@oryx.com wrote:Bruce Momjian2005-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > > > The second issue is where plperl returns a large result set. I have attached the following seven patches to address this problem: 1. Trivial. Replaces some errant spaces with tabs. 2. Trivial. Fixes the spelling of Jan's name, and gets rid of many inane, useless, annoying, and often misleading comments. Here's a sample: "plperl_init_all() - Initialize all". (I have tried to add some useful comments here and there, and will continue to do so now and again.) 3. Trivial. Splits up some long lines. 4. Converts SRFs in PL/Perl to use a Tuplestore and SFRM_Materialize to return the result set, based on the PL/PgSQL model. There are two major consequences: result sets will spill to disk when they can no longer fit in work_mem; and "select foo_srf()" no longer works. (I didn't lose sleep over the latter, since that form is not valid in PL/PgSQL, and it's not documented in PL/Perl.) 5. Trivial, but important. Fixes use of "undef" instead of undef. This would cause empty functions to fail in bizarre ways. I suspect that there's still another (old) bug here. I'll investigate further. 6. Moves the majority of (4) out into a new plperl_return_next() function, to make it possible to expose the functionality to Perl; cleans up some of the code besides. 7. Add an spi_return_next function for use in Perl code. If you want to apply the patches and try them out, 8-composite.diff is what you should use. (Note: my patches depend upon Andrew's use-strict and %_SHARED patches being applied.) Here's something to try: create or replace function foo() returns setof record as $$ $i = 0; for ("World", "PostgreSQL", "PL/Perl") { spi_return_next({f1=>++$i, f2=>'Hello', f3=>$_}); } return; $$ language plperl; select * from foo() as (f1 integer, f2 text, f3 text); (Many thanks to Andrews Dunstan and Supernews for their help.) Abhijit Menon-Sen
* Tom Lane <tgl@sss.pgh.pa.us> writes:Bruce Momjian2005-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > a_ogawa <a_ogawa@hi-ho.ne.jp> writes: > > It is a reasonable idea. However, the majority part of MemSet was not > > able to be avoided by this idea. Because the per-tuple contexts are used > > at the early stage of executor. > > Drat. Well, what about changing that? We could introduce additional > contexts or change the startup behavior so that the ones that are > frequently reset don't have any data in them unless you are working > with pass-by-ref values inside the inner loop. That might be possible. However, I think that we should change only aset.c about this article. I thought further: We can check whether context was used from the last reset even when blocks list is not empty. Please see attached patch. The effect of the patch that I measured is as follows: o Execution time that executed the SQL ten times. (1)Linux(CPU: Pentium III, Compiler option: -O2) - original: 24.960s - patched : 23.114s (2)Linux(CPU: Pentium 4, Compiler option: -O2) - original: 8.730s - patched : 7.962s (3)Solaris(CPU: Ultra SPARC III, Compiler option: -O2) - original: 37.0s - patched : 33.7s Atsushi Ogawa (a_ogawa)
* Change expandRTE() and ResolveNew() back to taking just the singleTom Lane2005-06-04
| | | | | | RTE of interest, rather than the whole rangetable list. This makes the API more understandable and avoids duplicate RTE lookups. This patch reverts no-longer-needed portions of my patch of 2004-08-19.
* Back out make_mkid change.Bruce Momjian2005-06-04
|
* Improve readability of config location params by adding newline.Bruce Momjian2005-06-04
|