git.postgresql.org Git - postgresql.git/log
Add:
> * Add group object ownership, so groups can rename/drop/grant on objects,
> so we can implement roles
Tom Lane [2003年1月25日 23:10:30 +0000 (23:10 +0000)]
Allow the planner to collapse explicit inner JOINs together, rather than
necessarily following the JOIN syntax to develop the query plan. The old
behavior is still available by setting GUC variable JOIN_COLLAPSE_LIMIT
to 1. Also create a GUC variable FROM_COLLAPSE_LIMIT to control the
similar decision about when to collapse sub-SELECT lists into their parent
lists. (This behavior existed already, but the limit was always
GEQO_THRESHOLD/2; now it's separately adjustable.)
Tom Lane [2003年1月25日 05:19:47 +0000 (05:19 +0000)]
Where available, use utime() or utimes() to update the file mod time
of the socket file and socket lock file; this should prevent both of them
from being removed by even the stupidest varieties of /tmp-cleaning
script. Per suggestion from Giles Lean.
Tom Lane [2003年1月25日 03:06:04 +0000 (03:06 +0000)]
Use stat(2) to probe for existing xlog segments in InstallXLogFileSegment,
rather than actually opening the files. This eliminates some corner cases
where the file indeed exists but open() fails for another reason, such
as being out of file descriptors. The net reliability gain is probably
tiny, since xlog.c is full of other file open calls that will elog(PANIC)
if they fail for any reason; but this specific failure mode has been
observed in the field, so we may as well fix it.
Tom Lane [2003年1月24日 21:53:29 +0000 (21:53 +0000)]
Suppress gcc warnings.
Tom Lane [2003年1月24日 03:58:44 +0000 (03:58 +0000)]
Modify planner's implied-equality-deduction code so that when a set
of known-equal expressions includes any constant expressions (including
Params from outer queries), we actively suppress any 'var = var'
clauses that are or could be deduced from the set, generating only the
deducible 'var = const' clauses instead. The idea here is to push down
the restrictions implied by the equality set to base relations whenever
possible. Once we have applied the 'var = const' clauses, the 'var = var'
clauses are redundant, and should be suppressed both to save work at
execution and to avoid double-counting restrictivity.
Grant options, and cascading revoke. Grant options are allowed only for
users right now, not groups. Extension of has_foo_privileges functions to
query the grant options. Extension of aclitem type to store grantor.
added fix from Joel Hock to get the inserted row into the current buffer
Tom Lane [2003年1月23日 15:18:40 +0000 (15:18 +0000)]
Fix obsolete error message (isImmutable doesn't exist).
Tom Lane [2003年1月23日 05:10:41 +0000 (05:10 +0000)]
Change CREATE TABLE AS / SELECT INTO to create the new table with OIDs,
for backwards compatibility with pre-7.3 behavior. Per discussion on
pgsql-general and pgsql-hackers.
Tom Lane [2003年1月23日 01:22:59 +0000 (01:22 +0000)]
Update 'Mathematical Functions' table to reflect 7.3 addition of float8
forms of ceil(), floor(), sign(). Back-patch this and other recent
doc fixes in this file to the 7.3 branch.
Tom Lane [2003年1月22日 20:44:20 +0000 (20:44 +0000)]
Fix sloppy comment.
Tom Lane [2003年1月22日 20:16:42 +0000 (20:16 +0000)]
Make estimation of mergejoin scan selectivities more robust, per recent
example from RaÇl GutiÅrrez.
Tom Lane [2003年1月22日 19:26:35 +0000 (19:26 +0000)]
Improve print_expr() a little. It's still not very bright though.
Tom Lane [2003年1月22日 00:07:00 +0000 (00:07 +0000)]
Implement choice between hash-based and sort-based grouping for doing
DISTINCT processing on the output of an IN sub-select.
Tom Lane [2003年1月21日 22:06:12 +0000 (22:06 +0000)]
Fix coredump problem in plpgsql's RETURN NEXT. When a SELECT INTO
that's selecting into a RECORD variable returns zero rows, make it
assign an all-nulls row to the RECORD; this is consistent with what
happens when the SELECT INTO target is not a RECORD. In support of
this, tweak the SPI code so that a valid tuple descriptor is returned
even when a SPI select returns no rows.
Synced parser.
Tom Lane [2003年1月21日 19:44:26 +0000 (19:44 +0000)]
Avoid gratuitous variation in spelling of same error message.
Fix sed expression for BSD sed.
Tom Lane [2003年1月20日 18:55:07 +0000 (18:55 +0000)]
IN clauses appearing at top level of WHERE can now be handled as joins.
There are two implementation techniques: the executor understands a new
JOIN_IN jointype, which emits at most one matching row per left-hand row,
or the result of the IN's sub-select can be fed through a DISTINCT filter
and then joined as an ordinary relation.
Along the way, some minor code cleanup in the optimizer; notably, break
out most of the jointree-rearrangement preprocessing in planner.c and
put it in a new file prep/prepjointree.c.
This patch includes a lot of minor cleanups to the SGML documentation,
including:
- replacing all the appropriate usages of <citetitle>PostgreSQL
...</citetitle> with &cite-user;, &cite-admin;, and so on
- fix an omission in the EXECUTE documentation
- add some more text to the EXPLAIN documentation
- improve the PL/PgSQL RETURN NEXT documentation (more work to do here)
- minor markup fixes
Neil Conway
Improve symlink handling for C tags file.
Add section on testing index scan.
Add dash to:
set-returning functions or SRF's.
for clarity.
Tom Lane [2003年1月17日 03:25:04 +0000 (03:25 +0000)]
Fix parse_agg.c to detect ungrouped Vars in sub-SELECTs; remove code
that used to do it in planner. That was an ancient kluge that was
never satisfactory; errors should be detected at parse time when possible.
But at the time we didn't have the support mechanism (expression_tree_walker
et al) to make it convenient to do in the parser.
Tom Lane [2003年1月17日 02:01:21 +0000 (02:01 +0000)]
Adjust API of expression_tree_mutator and query_tree_mutator to
simplify callers. It turns out the common case is that the caller
does want to recurse into sub-queries, so push support for that into
these subroutines.
Tom Lane [2003年1月16日 21:01:45 +0000 (21:01 +0000)]
Add code to print information about a detected deadlock cycle. The
printed data is comparable to what you could read in the pg_locks view,
were you fortunate enough to have been looking at it at the right time.
Tom Lane [2003年1月16日 18:26:02 +0000 (18:26 +0000)]
Ooops, didn't cut-and-paste quite enough code from ResolveNew;
with result that flatten_join_alias_vars failed to descend into subselects.
Tom Lane [2003年1月16日 15:27:59 +0000 (15:27 +0000)]
Fix bogus formatting of DROP DATABASE command, per Christopher Kings-Lynne.
Tom Lane [2003年1月16日 00:26:49 +0000 (00:26 +0000)]
Repair an embarrassingly large number of alphabetization mistakes in the
datetime token tables. Even more embarrassing, the regression tests
revealed some of the problems --- but evidently the bogus output wasn't
questioned. Add code to postmaster startup to directly check the tables
for correct ordering, in hopes of not being embarrassed like this again.
Add remaining documentation tables to information schema.
Tom Lane [2003年1月15日 23:10:32 +0000 (23:10 +0000)]
Now that switch_outer processing no longer relies on being run after
join_references(), it's practical to consolidate all join_references()
processing into the set_plan_references traversal in setrefs.c. This
seems considerably cleaner than the old way where we did it for join
quals in createplan.c and for targetlists in setrefs.c.
Oops, put back changes. Those were Peter's, not mine.
Revert my changes to features.sgml.
More comment cleanups for shared_buffers in postgresql.conf.
Update shared_buffer comment in postgresql.conf.
Back out ORDER BY addition to Inet, for Tom.
Tom Lane [2003年1月15日 19:35:48 +0000 (19:35 +0000)]
Allow merge and hash joins to occur on arbitrary expressions (anything not
containing a volatile function), rather than only on 'Var = Var' clauses
as before. This makes it practical to do flatten_join_alias_vars at the
start of planning, which in turn eliminates a bunch of klugery inside the
planner to deal with alias vars. As a free side effect, we now detect
implied equality of non-Var expressions; for example in
SELECT ... WHERE a.x = b.y and b.y = 42
we will deduce a.x = 42 and use that as a restriction qual on a. Also,
we can remove the restriction introduced 12/5/02 to prevent pullup of
subqueries whose targetlists contain sublinks.
Still TODO: make statistical estimation routines in selfuncs.c and costsize.c
smarter about expressions that are more complex than plain Vars. The need
for this is considerably greater now that we have to be able to estimate
the suitability of merge and hash join techniques on such expressions.
Reorder VARCHAR() to appear before CHAR() in docs.
This patch fixes an incorrect statement and makes a few cleanups to
contrib/fulltextindex/README.fti
Backpatched to 7.3.X too.
Neil Conway
This patch includes some minor fixes and improvements to the SGML docs
for PL/PgSQL.
Neil Conway
Add ORDER BY for inet regression, pointed out by Rod Taylor.
Add sql_features table to information schema. Generate the features list
in the documentation from that same data.
Readd #include netinet/in.h for FreeBSD.
Escape ampersand.
Barry Lind [2003年1月14日 09:42:07 +0000 (09:42 +0000)]
Bumped up build number to 200
Barry Lind [2003年1月14日 09:13:51 +0000 (09:13 +0000)]
Patch from Florian Wunderlich to correctly support java Timestamps. Previously
the code would only capture milliseconds where as both postgres and the java
Timestamp object support greater resolution.
Also fixed a bug reported by Rhett Sutphin where the last digit of the
fractional seconds was lost when using timestamp without time zone
Modified Files:
jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
jdbc/org/postgresql/test/jdbc2/TimestampTest.java
Barry Lind [2003年1月14日 05:46:49 +0000 (05:46 +0000)]
Patch from Aaron Mulder to have pooled connections implement PGConnection
Modified Files:
jdbc/org/postgresql/jdbc2/optional/PooledConnectionImpl.java
jdbc/org/postgresql/test/jdbc2/optional/BaseDataSourceTest.java
Barry Lind [2003年1月14日 05:05:26 +0000 (05:05 +0000)]
Patch from Kris Jurka to improve the performance of getImportedKeys().
Use explicit joins to avoid using the genetic query optimizer. Also fixed
a regression test that was failing to compile. This change also cleans up
how key names are reported as per:
A change to the value of the FK_NAME column. Currently the returned value
is the triggers arguments which look like
"<unnamed>000円t2000円t1000円UNSPECIFIED000円a000円a000円"
This was required for server versions < 7.3 when a user did not supply
constraint names. Every constraint was named "<unnamed>"
. 7.3 has enforced unique constraint names per table so unnamed foreign
keys will have different names "1ドル", "2ドル" and so on. I've used logic
along the lines of the following to preserve the unique names in the
original scheme, but allow people who go to the trouble of naming their
constraints to see them:
if (triggerargs.startsWith("<unnamed>")) {
fkname = [the whole ugly trigger args name originally used];
} else {
fkname = [the actual fk name];
}
Modified Files:
jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java
jdbc/org/postgresql/test/jdbc2/optional/ConnectionPoolTest.java
Add:
> o Allow PL/PgSQL to support array element assignment
Add Hugarian FAQ, from Laszlo Hornyak
Tom Lane [2003年1月13日 20:37:18 +0000 (20:37 +0000)]
Fix information_schema.sql install to work when building outside
source tree.
Tom Lane [2003年1月13日 18:10:53 +0000 (18:10 +0000)]
Reconsider mechanism for marking sub-selects that are at top level of
a qualification clause (and hence can get away with being sloppy about
distinguishing FALSE from UNKNOWN). We need to know this in subselect.c;
marking the subplans in setrefs.c is too late.
Change Adjust_lo_type() so that it doesn't cause an error
even when cast functions are allowed to be volatile.
Fixes to pgcvslog for last narrive entry.
Tom Lane [2003年1月13日 00:29:26 +0000 (00:29 +0000)]
Cause planner to account for evaluation costs in targetlists and
HAVING quals. Normally this is an insignificant effect --- but it
will not be insignificant when these clauses contain sub-selects.
The added costs cannot affect the planning of the query containing
them, but they might have an impact when the query is a sub-query
of a larger one.
Tom Lane [2003年1月13日 00:18:51 +0000 (00:18 +0000)]
Recent changes in sublink representation require exprType() to accept
SubPlan nodes, else explaining queries containing sublinks may fail.
Tom Lane [2003年1月12日 22:35:29 +0000 (22:35 +0000)]
Revise cost_qual_eval() to compute both startup (one-time) and per-tuple
costs for expression evaluation, not only per-tuple cost as before.
This extension is needed in order to deal realistically with hashed or
materialized sub-selects.
Tom Lane [2003年1月12日 22:01:38 +0000 (22:01 +0000)]
Fix wrong/misleading comments, be more consistent about where to call
ExecAssignResultTypeFromTL().
Tom Lane [2003年1月12日 18:42:59 +0000 (18:42 +0000)]
Fix some minor grammatical errors.
Update CHAR().
Replace RelidGetNamespaceId() by get_rel_namespace().
Update CHAR() description.
Update date only.
Improve CHAR() description.
Tom Lane [2003年1月12日 04:03:34 +0000 (04:03 +0000)]
First cut at implementing IN (and NOT IN) via hashtables. There is
more to be done yet, but this is a good start.
SGML build cleanups from Neil Conway.
Fix capitalization.
Back out flockfile change for NetBSD. Giles Lean reports they are not
supported.
Tom Lane [2003年1月11日 17:22:19 +0000 (17:22 +0000)]
Cause symlinks for shared-library versioning to run in the standard
direction on HP-UX; our former approach has been obsolete since HPUX 9.
Giles Lean
Fix markup problem in link to other SGML file.
Fix typo in an error message
> > This patch improves the documentation for the shared_buffers GUC param.
>
> I'd suggest that the runtime.sgml description explicitly say "values of
> at least a few thousand are recommended for production installations".
Neil Conway
Rewrite for-loop, because this is not the Obfuscated C Code Contest.
Manfred Koizar
A tiny patch to fix a typo in configure.in and another one in
RELEASE_CHANGES.
Manfred Koizar
Add doc links from SET to SET_CONSTRAINTS, SET_SESSION_AUTH,
SET_TRANSACTION.
Fix markup.
Tom Lane [2003年1月10日 23:54:24 +0000 (23:54 +0000)]
Create a new file executor/execGrouping.c to centralize utility routines
shared by nodeGroup, nodeAgg, and soon nodeSubplan.
Tom Lane [2003年1月10日 23:49:06 +0000 (23:49 +0000)]
Add missing <limits.h> for INT64_IS_BUSTED case.
Read-only transactions, as defined in SQL.
Do not shell-quote the name of the editor, so that the editor can be a
command with arguments.
Tom Lane [2003年1月10日 21:08:15 +0000 (21:08 +0000)]
Further tweaking of parsetree & plantree representation of SubLinks.
Simplify SubLink by storing just a List of operator OIDs, instead of
a list of incomplete OpExprs --- that was a bizarre and bulky choice,
with no redeeming social value since we have to build new OpExprs
anyway when forming the plan tree.
Add optional drop behavior clause to REVOKE command, for SQL conformance.
Currently, only RESTRICT is allowed.
Clean ip.c.
Tom Lane [Thu, 9 Jan 2003 20:50:53 +0000 (20:50 +0000)]
Adjust parser so that 'x NOT IN (subselect)' is converted to
'NOT (x IN (subselect))', that is 'NOT (x = ANY (subselect))',
rather than 'x <> ALL (subselect)' as we formerly did. This
opens the door to optimizing NOT IN the same way as IN, whereas
there's no hope of optimizing the expression using <>. Also,
convert 'x <> ALL (subselect)' to the NOT(IN) style, so that
the optimization will be available when processing rules dumped
by older Postgres versions.
initdb forced due to small change in SubLink node representation.
Tom Lane [Thu, 9 Jan 2003 18:27:39 +0000 (18:27 +0000)]
Add missing #include <getopt.h>.
Tom Lane [Thu, 9 Jan 2003 18:00:24 +0000 (18:00 +0000)]
Move new typedef AclId into c.h, so as to avoid cluttering namespace
by having to include miscadmin.h into other header files.
Fix IPv6 detection and IPv6 to 4 conversion to use only standard
interfaces.
Tom Lane [Thu, 9 Jan 2003 07:10:07 +0000 (07:10 +0000)]
Call timestamp_in with proper arguments, per gripe from Mark Halliwell.
Fix indenting of log_min_error_statement.
Remove bit.c/h routines. Not used anymore.
Tom Lane [Thu, 9 Jan 2003 01:06:57 +0000 (01:06 +0000)]
Repair inconsistent rounding behavior for timestamp, time, interval,
per gripe from Csaba Nagy. There is still potential for platform-specific
behavior for values that are exactly halfway between integers, but at
least we now get the expected answer for all other cases.
add to threads discussion.
Tom Lane [Thu, 9 Jan 2003 00:58:41 +0000 (00:58 +0000)]
Add missing pg_proc entry for interval_scale(). The lack of this entry
causes interval rounding not to work as expected in 7.3, for example
SELECT '18:17:15.6'::interval(0) does not round the value.
I did not force initdb, but one is needed to install the added row.
Remove 'const' from secure_write, to prevent compiler warning.
Tom Lane [Wed, 8 Jan 2003 23:32:29 +0000 (23:32 +0000)]
Guard against stopping when numberTuples=0 and counter wraps around.
The second was that renegotiation was just plain broken. I can't
believe I didn't notice this before -- once 64k was sent to/from the
server the client would crash. Basicly, in 7.3 the server SSL code set
the initial state to "about to renegotiate" without actually starting
the renegotiation. In addition, the server and client didn't properly
handle the SSL_ERROR_WANT_(READ|WRITE) error. This is fixed in the
second patch.
Nathan Mueller
I was playing around with 7.3.1 and found some more SSL problems. The
first, that I missed when checking over 7.3.1, was that the client
method was switched to SSLv23 along with the server. The SSLv23 client
method does SSLv2 by default, but can also understand SSLv3. In our
situation the SSLv2 backwords compatibility is really only needed on the
server. This is the first patch.
The last thing is that I found a way for the server to understand SSLv2
HELLO messages (sent by pre-7.3 clients) but then get them to talk
SSLv3. This is the last one.
Nathan Mueller
Fix dumping of DEFERRABLE/INITIALLY DEFERRED:
> The big problem is that while pg_dump's dump_trigger() looks at
> tginitdeferred and dumps accordingly, pg_get_constraintdef doesn't look
> at tginitdeferred, and therefore doesn't record the requirement as part
> of ALTER TABLE ADD CONSTRAINT.
pg_get_constraintdef should probably be looking at condeferrable and
condeferred in the pg_constraint row it's looking at. Maybe something
like the attached.
(Added, output only non-default values.)
Stephan Szabo
Updated deferred trigger patch.
Neil Conway
This is the main PostgreSQL git repository.
RSS
Atom