- 06 Jun, 2005 1 commit
-
-
Tom Lane authored
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.
-
- 05 Jun, 2005 11 commits
-
-
Tom Lane authored
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.
-
Bruce Momjian authored
< cleaned up properly. A new signal is needed for safe termination. > cleaned up properly. A new signal is needed for safe termination > because backends must first do a query cancel, then exit once they > have run the query cancel cleanup routine.
-
Bruce Momjian authored
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
-
Tom Lane authored
prepared for HAVE_INT64_TIMESTAMP. Per report from Guillaume Beaudoin.
-
Bruce Momjian authored
-
Bruce Momjian authored
> * Add two-phase commit [2phase]
-
Tom Lane authored
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.
-
Bruce Momjian authored
< logs > logs [pitr] 130c130 < * Allow a warm standby system to also allow read-only queries > * Allow a warm standby system to also allow read-only queries [pitr]
-
Bruce Momjian authored
-
Bruce Momjian authored
< information, either zone name or offset from UTC > information, either zone name or offset from UTC [timezone]
-
Bruce Momjian authored
-
- 04 Jun, 2005 17 commits
-
-
Bruce Momjian authored
-
Bruce Momjian authored
> * Allow major upgrades without dump/reload, perhaps using pg_upgrade > [pg_upgrade]
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
--------------------------------------------------------------------------- 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.
-
Bruce Momjian authored
-
Bruce Momjian authored
Allow kerberos name and username case sensitivity to be specified from 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
-
Bruce Momjian authored
> > > 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
-
Bruce Momjian authored
> 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)
-
Tom Lane authored
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.
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
> * Allow pg_ctl to work properly with configuration files located outside > the PGDATA directory > > pg_ctl can not read the pid file because it isn't located in the > config directory but in the PGDATA directory. The solution is to > allow pg_ctl to read and understand postgresql.conf to find the > data_directory value. >
-
Bruce Momjian authored
> > O_DIRECT doesn't have the same media write guarantees as fsync, so it > is in addition to the fsync method, not in place of it. >
-
Bruce Momjian authored
Division rounding was causing incorrect results. Test case: test=> SELECT 12345678901234567890 % 123; ?column? ---------- 78 (1 row) Was returning -45.
-
Bruce Momjian authored
Weiping (Laser)
-
Neil Conway authored
accordingly (this field was always initialized to true). Patch from Alvaro Herrera.
-
- 03 Jun, 2005 8 commits
-
-
Tom Lane authored
performance problem pointed out by phil@vodafone: to wit, we were spending O(N^2) time to check dropped-ness in an N-deep join tree, even in the case where the tree was freshly constructed and couldn't possibly mention any dropped columns. Instead of recursing in get_rte_attribute_is_dropped(), change the data structure definition: the joinaliasvars list of a JOIN RTE must have a NULL Const instead of a Var at any position that references a now-dropped column. This costs nothing during normal parse-rewrite-plan path, and instead we have a linear-time update to make when loading a stored rule that might contain now-dropped columns. While at it, move the responsibility for acquring locks on relations referenced by rules into this separate function (which I therefore chose to call AcquireRewriteLocks). This saves effort --- namely, duplicated lock grabs in parser and rewriter --- in the normal path at a cost of one extra non-locked heap_open() in the stored-rule path; seems a good tradeoff. A fringe benefit is that it is now *much* clearer that we acquire lock on relations referenced in rules before we make any rewriter decisions based on their properties. (I don't know of any bug of that ilk, but it wasn't exactly clear before.)
-
Bruce Momjian authored
-
Bruce Momjian authored
< * -Compress WAL entries [wal]
-
Tom Lane authored
no part of the planner did CHECK_FOR_INTERRUPTS(). Add one in a suitably strategic spot.
-
Bruce Momjian authored
Viktor Vislobokov
-
Bruce Momjian authored
-
Bruce Momjian authored
> * -Compress WAL entries [wal]
-
Bruce Momjian authored
> * -Change WAL to use 32-bit CRC, for performance reasons
-
- 02 Jun, 2005 3 commits
-
-
Tom Lane authored
to just around the bare recv() call that gets a command from the client. The former placement in PostgresMain was unsafe because the intermediate processing layers (especially SSL) use facilities such as malloc that are not necessarily re-entrant. Per report from counterstorm.com.
-
Tom Lane authored
broke it. Maybe we do need an automated check ...
-
Michael Meskes authored
- Added patch by Gavin Scott <gavin@planetacetech.com> for Intel 64bit hardware.
-