Commit Graph

15995 Commits

Author SHA1 Message Date
Bruce Momjian 70e2e3d8b1 Improve pginclude tools to process include file usage by other include files. 2006-07-13 16:39:20 +00:00
Neil Conway a18faa1ba2 Remove trailing comma from CreateStmtLikeOption enum definition. This
is harmless, but it causes a warning with Tru64's cc.
2006-07-13 15:09:57 +00:00
Bruce Momjian 99ac1e69ba Fix pgrminclude to work for stripping include files. 2006-07-12 16:28:27 +00:00
Joe Conway 9e196d7c92 Clean up for warning:
fe-auth.c:573: warning: passing argument 1 of 'free' discards qualifiers
  from pointer target type
pg_krb5_authname used to return a (const char *) to memory allocated by
krb. Somewhere along the lines this was changed so that a copy was
made, returned, and freed instead. However the const modifier was never
removed.
2006-07-12 02:31:56 +00:00
Alvaro Herrera 7234777674 Apply entab fix from Marko Kreen for these problems:
- halt.c did not include stdlib.h, thus missed exit() prototype
- Makefile ignores BINDIR for install.
- Makefile calls install with user/group args, thus failing for regular user.

While trying it I noticed that the Makefile does not support VPATH builds ...
2006-07-11 21:21:59 +00:00
Tom Lane d29b66882a Tweak fillfactor code as per my recent proposal. Fix nbtsort.c so that
it can handle small fillfactors for ordinary-sized index entries without
failing on large ones; fix nbtinsert.c to distinguish leaf and nonleaf
pages; change the minimum fillfactor to 10% for all index types.
2006-07-11 21:05:57 +00:00
Bruce Momjian 1be8f80288 Improve pginclude tests. 2006-07-11 20:51:25 +00:00
Bruce Momjian 4084681546 Improve pginclude compile flags. 2006-07-11 20:12:29 +00:00
Bruce Momjian 8230fbf964 Update pginclude documentation. 2006-07-11 19:52:12 +00:00
Teodor Sigaev 001d30ee6b Add support to GIN for =(anyarray,anyarray) operation 2006-07-11 19:49:14 +00:00
Bruce Momjian 6d57ed7797 Have pgrminclude process include files too. 2006-07-11 19:45:16 +00:00
Bruce Momjian 22269434a6 Add $CFLAGS support to pgrminclude. 2006-07-11 19:34:34 +00:00
Bruce Momjian 1ddbfa16a8 Move pgrminclude debug code to be more effective. 2006-07-11 19:31:29 +00:00
Bruce Momjian 108fe524a9 Improve shell script wrapping. 2006-07-11 19:30:05 +00:00
Bruce Momjian 01835c495c Add comments to pgrminclude. 2006-07-11 19:25:41 +00:00
Bruce Momjian ac230e7431 Alphabetically order reference to include files, "S"-"Z". 2006-07-11 18:26:11 +00:00
Bruce Momjian 0ff3461bcc Alphabetically order reference to include files, "N" - "S". 2006-07-11 17:26:59 +00:00
Bruce Momjian 3a534ade39 Alphabetically order reference to include files, "G" - "M". 2006-07-11 17:04:13 +00:00
Teodor Sigaev 234163649e GIN improvements
- Replace sorted array of entries in maintenance_work_mem to binary tree,
  this should improve create performance.
- More precisely calculate allocated memory, eliminate leaks
  with user-defined extractValue()
- Improve wordings in tsearch2
2006-07-11 16:55:34 +00:00
Bruce Momjian fa601357fb Sort reference of include files, "A" - "F". 2006-07-11 16:35:33 +00:00
Tom Lane c713683fd7 Reverse inclusion order of <ws2tcpip.h> and <winsock2.h>, per Dave Page. 2006-07-11 14:25:09 +00:00
Bruce Momjian b85a965f5f Allow each C include file to compile on its own by including any needed
header files.
2006-07-11 13:54:25 +00:00
Bruce Momjian 45a4309074 Add libpq include directory to script. 2006-07-11 02:01:24 +00:00
Tom Lane cb33de773d Fix ALTER TABLE to check pre-existing NOT NULL constraints when rewriting
a table.  Otherwise a USING clause that yields NULL can leave the table
violating its constraint (possibly there are other cases too).  Per report
from Alexander Pravking.
2006-07-10 22:10:39 +00:00
Bruce Momjian 97c3fcd9b7 Move pthread-win32.h to /port, modify bcc/msvc makefiles. 2006-07-10 18:53:29 +00:00
Bruce Momjian d399f1b75e Improve compile line for tool. 2006-07-10 18:39:32 +00:00
Bruce Momjian 54485d9fdd Update usage documention for pginclude 2006-07-10 17:13:34 +00:00
Bruce Momjian f61f01f1a2 Add $CFLAGS handling to pgcompinclude. 2006-07-10 17:11:43 +00:00
Bruce Momjian 94a61ef757 Fix 'find' args for pgcompinclude tool. 2006-07-10 17:08:38 +00:00
Bruce Momjian bbd41aac44 Improve tool coding. 2006-07-10 16:45:44 +00:00
Alvaro Herrera d4cef0aa2a Improve vacuum code to track minimum Xids per table instead of per database.
To this end, add a couple of columns to pg_class, relminxid and relvacuumxid,
based on which we calculate the pg_database columns after each vacuum.

We now force all databases to be vacuumed, even template ones.  A backend
noticing too old a database (meaning pg_database.datminxid is in danger of
falling behind Xid wraparound) will signal the postmaster, which in turn will
start an autovacuum iteration to process the offending database.  In principle
this is only there to cope with frozen (non-connectable) databases without
forcing users to set them to connectable, but it could force regular user
database to go through a database-wide vacuum at any time.  Maybe we should
warn users about this somehow.  Of course the real solution will be to use
autovacuum all the time ;-)

There are some additional improvements we could have in this area: for example
the vacuum code could be smarter about not updating pg_database for each table
when called by autovacuum, and do it only once the whole autovacuum iteration
is done.

I updated the system catalogs documentation, but I didn't modify the
maintenance section.  Also having some regression tests for this would be nice
but it's not really a very straightforward thing to do.

Catalog version bumped due to system catalog changes.
2006-07-10 16:20:52 +00:00
Bruce Momjian e627c9b9a6 Improve script by processing only C files. 2006-07-10 16:07:24 +00:00
Alvaro Herrera 7b96d337d0 Testing commit stuff 2006-07-10 15:50:02 +00:00
Alvaro Herrera 7029f97c32 Fix typo in comment. 2006-07-08 20:45:38 +00:00
Bruce Momjian 591e90a4d9 WIN32 fixes:
I take out patch for this as a promise. This is client-build support of
MS-VC6+.

Fix for different getaddrinfo structure ordering on Win32 for IPv6.

Hiroshi Saito
2006-07-06 02:12:32 +00:00
Bruce Momjian 4f4d62a5b5 Attached patch is required ot build with the CRT that comes with Visual
Studio 2005. Basically MS defined errcode in the headers with a typedef,
so we have to #define it out of the way.

While at it, fix a function declaration in plpython that didn't match
the implementation (volatile missing).

Magnus Hagander
2006-07-06 01:55:51 +00:00
Bruce Momjian a77275fe3b Please find attached two patches for documentation and regression tests
for the usage of full time zone names.

Joachim Wieland
2006-07-06 01:46:38 +00:00
Michael Meskes 956cbeb7ef Fixed remaining Coverity bugs. 2006-07-05 10:49:56 +00:00
Bruce Momjian 3fafac3f62 Remove libpq's PQescapeIdentifier(), not safe from injection attacks. 2006-07-04 13:22:15 +00:00
Neil Conway 530eab592c Fix typos in comments. 2006-07-04 04:35:49 +00:00
Tom Lane b7b78d24f7 Code review for FILLFACTOR patch. Change WITH grammar as per earlier
discussion (including making def_arg allow reserved words), add missed
opt_definition for UNIQUE case.  Put the reloptions support code in a less
random place (I chose to make a new file access/common/reloptions.c).
Eliminate header inclusion creep.  Make the index options functions safely
user-callable (seems like client apps might like to be able to test validity
of options before trying to make an index).  Reduce overhead for normal case
with no options by allowing rd_options to be NULL.  Fix some unmaintainably
klugy code, including getting rid of Natts_pg_class_fixed at long last.
Some stylistic cleanup too, and pay attention to keeping comments in sync
with code.

Documentation still needs work, though I did fix the omissions in
catalogs.sgml and indexam.sgml.
2006-07-03 22:45:41 +00:00
Neil Conway 7fb9090ebf Do a pass of code review for the ALTER TABLE ADD INHERITS patch. Keep
the read lock we hold on the table's parent relation until commit.
Update equalfuncs.c for the new field in AlterTableCmd. Various
improvements to comments, variable names, and error reporting.

There is room for further improvement here, but this is at least
a step in the right direction.
2006-07-02 05:17:26 +00:00
Bruce Momjian 277807bd9e Add FILLFACTOR to CREATE INDEX.
ITAGAKI Takahiro
2006-07-02 02:23:23 +00:00
Bruce Momjian 8c092781f4 ALTER TABLE ... ADD/DROPS INHERIT (actually INHERIT / NO INHERIT)
Open items:

There were a few tangentially related issues that have come up that I think
are TODOs. I'm likely to tackle one or two of these next so I'm interested in
hearing feedback on them as well.

. Constraints currently do not know anything about inheritance. Tom suggested
  adding a coninhcount and conislocal like attributes have to track their
  inheritance status.

. Foreign key constraints currently do not get copied to new children (and
  therefore my code doesn't verify them). I don't think it would be hard to
  add them and treat them like CHECK constraints.

. No constraints at all are copied to tables defined with LIKE. That makes it
  hard to use LIKE to define new partitions. The standard defines LIKE and
  specifically says it does not copy constraints. But the standard already has
  an option called INCLUDING DEFAULTS; we could always define a non-standard
  extension LIKE table INCLUDING CONSTRAINTS that gives the user the option to
  request a copy including constraints.

. Personally, I think the whole attislocal thing is bunk. The decision about
  whether to drop a column from children tables or not is something that
  should be up to the user and trying to DWIM based on whether there was ever
  a local definition or the column was acquired purely through inheritance is
  hardly ever going to match up with user expectations.

. And of course there's the whole unique and primary key constraint issue. I
  think to get any traction at all on this you have a prerequisite of a real
  partitioned table implementation where the system knows what the partition
  key is so it can recognize when it's a leading part of an index key.

Greg Stark
2006-07-02 01:58:36 +00:00
Tom Lane 08ccdf020e Fix oversight in planning for multiple indexscans driven by
ScalarArrayOpExpr index quals: we were estimating the right total
number of rows returned, but treating the index-access part of the
cost as if a single scan were fetching that many consecutive index
tuples.  Actually we should treat it as a multiple indexscan, and
if there are enough of 'em the Mackert-Lohman discount should kick in.
2006-07-01 22:07:23 +00:00
Tom Lane cffd89ca73 Revise the planner's handling of "pseudoconstant" WHERE clauses, that is
clauses containing no variables and no volatile functions.  Such a clause
can be used as a one-time qual in a gating Result plan node, to suppress
plan execution entirely when it is false.  Even when the clause is true,
putting it in a gating node wins by avoiding repeated evaluation of the
clause.  In previous PG releases, query_planner() would do this for
pseudoconstant clauses appearing at the top level of the jointree, but
there was no ability to generate a gating Result deeper in the plan tree.
To fix it, get rid of the special case in query_planner(), and instead
process pseudoconstant clauses through the normal RestrictInfo qual
distribution mechanism.  When a pseudoconstant clause is found attached to
a path node in create_plan(), pull it out and generate a gating Result at
that point.  This requires special-casing pseudoconstants in selectivity
estimation and cost_qual_eval, but on the whole it's pretty clean.
It probably even makes the planner a bit faster than before for the normal
case of no pseudoconstants, since removing pull_constant_clauses saves one
useless traversal of the qual tree.  Per gripe from Phil Frost.
2006-07-01 18:38:33 +00:00
Alvaro Herrera 68628fc38e Fix memory leak introduced in the prior commit, detected by Tom Lane. 2006-06-30 16:55:35 +00:00
Alvaro Herrera 78bfc22ee2 Fix use-after-free error reported by Neil Conway. 2006-06-30 15:06:05 +00:00
Tom Lane 51e400c9c6 Remove the separate 'stats buffer' process, letting backend stats messages
be delivered directly to the collector process.  The extra process context
swaps required to transfer data through the buffer process seem to outweigh
any value the buffering might have.  Per recent discussion and tests.
I modified Bruce's draft patch to use poll() rather than select() where
available (this makes a noticeable difference on my system), and fixed
up the EXEC_BACKEND case.
2006-06-29 20:00:08 +00:00
Tom Lane cd4609e2a4 Change TRUNCATE's method for searching for foreign-key references so that
the order in which it visits tables is not dependent on the physical order
of pg_constraint entries, and neither are the error messages it gives.
This should correct recently-noticed instability in regression tests.
2006-06-29 16:07:29 +00:00