1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-11 10:01:57 +03:00
Commit Graph

24386 Commits

Author SHA1 Message Date
fe12263c9f filemode is parsed on win32 even if never used
Per buildfarm failure.
2011-01-23 14:45:23 +01:00
048d148fe6 Add pg_basebackup tool for streaming base backups
This tool makes it possible to do the pg_start_backup/
copy files/pg_stop_backup step in a single command.

There are still some steps to be done before this is a
complete backup solution, such as the ability to stream
the required WAL logs, but it's still usable, and
could do with some buildfarm coverage.

In passing, make the checkpoint request optionally
fast instead of hardcoding it.

Magnus Hagander, reviewed by Fujii Masao and Dimitri Fontaine
2011-01-23 12:21:23 +01:00
6f59777c65 Code cleanup for assign_transaction_read_only.
As in commit fb4c5d2798 on 2011-01-21,
this avoids spurious debug messages and allows idempotent changes at
any time.  Along the way, make assign_XactIsoLevel allow idempotent
changes even when not within a subtransaction, to be consistent with
the new coding of assign_transaction_read_only and because there's
no compelling reason to do otherwise.

Kevin Grittner, with some adjustments.
2011-01-22 20:55:50 -05:00
cc73c16050 Quick hack to un-break plpython regression tests.
It's not clear to me what should happen to the other plpython_unicode
variant expected files, but this patch gets things passing on my own
machines and at least some of the buildfarm.
2011-01-22 20:43:54 -05:00
0f73aae13d Allow the wal_buffers setting to be auto-tuned to a reasonable value.
If wal_buffers is initially set to -1 (which is now the default), it's
replaced by 1/32nd of shared_buffers, with a minimum of 8 (the old default)
and a maximum of the XLOG segment size.  The allowed range for manual
settings is still from 4 up to whatever will fit in shared memory.

Greg Smith, with implementation correction by me.
2011-01-22 20:31:24 -05:00
518b1e96c0 Suppress "control reaches end of non-void function" warning from gcc 4.5.
Not sure why I'm seeing this on Fedora 14 and not earlier versions.
Seems like a regression that gcc no longer knows that DIE() doesn't return.
Still, adding a dummy return is harmless enough.
2011-01-22 18:01:31 -05:00
e2627258c3 Suppress possibly-uninitialized-variable warnings from gcc 4.5.
It appears that gcc 4.5 can issue such warnings for whole structs, not
just scalar variables as in the past.  Refactor some pg_dump code slightly
so that the OutputContext local variables are always initialized, even
if they won't be used.  It's cheap enough to not be worth worrying about.
2011-01-22 17:56:42 -05:00
116ce2f4d0 Get rid of the global variable holding the error state
Global error handling led to confusion and was hard to manage.  With
this change, errors from PostgreSQL are immediately reported to Python
as exceptions.  This requires setting a Python exception after
reporting the caught PostgreSQL error as a warning, because PLy_elog
destroys the Python exception state.

Ideally, all places where PostgreSQL errors need to be reported back
to Python should be wrapped in subtransactions, to make going back to
Python from a longjmp safe.  This will be handled in a separate patch.

Jan Urbański
2011-01-22 22:12:32 +02:00
f5a0fd2f3b Link libpgport into pg_test_fsync on msvc 2011-01-22 18:18:27 +01:00
a0c75f5539 Avoid treating WAL senders as normal backends.
The previous coding treated anything that wasn't an autovacuum launcher
as a normal backend, which is wrong now that we also have WAL senders.

Fujii Masao, reviewed by Robert Haas, Alvaro Herrera, Tom Lane,
and Bernd Helmle.
2011-01-21 22:23:01 -05:00
fb4c5d2798 Code cleanup for assign_XactIsoLevel.
The new coding avoids a spurious debug message when a transaction
that has changed the isolation level has been rolled back.  It also
allows the property to be freely changed to the current value within
a subtransaction.

Kevin Grittner, with one small change by me.
2011-01-21 21:49:19 -05:00
4609caf364 Correctly add exceptions to the plpy module for Python 3
The way the exception types where added to the module was wrong for
Python 3.  Exception classes were not actually available from plpy.
Fix that by factoring out code that is responsible for defining new
Python exceptions and make it work with Python 3.  New regression test
makes sure the plpy module has the expected contents.

Jan Urbanśki, slightly revised by me
2011-01-21 23:46:56 +02:00
606a3d54fc Move test_fsync to /contrib. 2011-01-21 12:47:54 -05:00
8aea1373d8 Don't require usage privileges on the foreign data wrapper when creating a
foreign table. We check for usage privileges on the foreign server, that ought
to be enough.

Shigeru HANADA
2011-01-21 15:05:20 +02:00
8ceb245680 Make ALTER TABLE revalidate uniqueness and exclusion constraints.
Failure to do so can lead to constraint violations.  This was broken by
commit 1ddc2703a9 on 2010-02-07, so
back-patch to 9.0.

Noah Misch.  Regression test by me.
2011-01-20 22:44:10 -05:00
14b9f69cb2 Fix wrong comment
Hitoshi Harada
2011-01-20 22:04:36 +02:00
81f79dbf2e Fix typo
Hitoshi Harada
2011-01-20 22:01:10 +02:00
740e54ca84 Factor out functions responsible for caching I/O routines
This makes PLy_procedure_create a bit more manageable.

Jan Urbański
2011-01-20 21:23:27 +02:00
9c5e2c120b Add new psql command \dL to list languages.
Original patch by Fernando Ike, revived by Josh Kuperschmidt, reviewed by Andreas
Karlsson, and in earlier versions by Tom Lane and Peter Eisentraut.
2011-01-20 00:00:30 -05:00
fbed5d4830 Add braces around an if block, for readability
Jan Urbański, reviewed by Peter Eisentraut, Álvaro Herrera, Tom Lane :-)
2011-01-19 21:56:21 +02:00
847e8c7783 Free plan values in the PLyPlanObject dealloc function
Jan Urbański
2011-01-19 00:10:19 +02:00
719461b7a2 Improve message for errors in compiling anonymous PL/Python blocks
The previous code would try to print out a null pointer.

Jan Urbański
2011-01-19 00:04:46 +02:00
d9a95c0adb Use PyObject_New instead of PyObject_NEW
The latter is undocumented and the speed gain is negligible.

Jan Urbański
2011-01-18 23:53:10 +02:00
41282111e6 Skip dropped attributes when converting Python objects to tuples
Pay attention to the attisdropped field and skip over TupleDesc fields
that have it set.  Not a real problem until we get table returning
functions, but it's the right thing to do anyway.

Jan Urbański
2011-01-18 23:39:09 +02:00
59ea9ef9aa Use palloc in TopMemoryContext instead of malloc
As discussed, even if the PL needs a permanent memory location, it
should use palloc, not malloc.  It also makes error handling easier.

Jan Urbański
2011-01-18 23:27:53 +02:00
88047e59ba Fix an error when a set-returning function fails halfway through the execution
If the function using yield to return rows fails halfway, the iterator
stays open and subsequent calls to the function will resume reading
from it.  The fix is to unref the iterator and set it to NULL if there
has been an error.

Jan Urbański
2011-01-18 23:22:37 +02:00
8995440e38 In test_fsync, adjust test headings to match wal_sync_method values;
add more test cases for open_sync of different sizes.
2011-01-18 15:53:55 -05:00
1b393f4e5d Avoid detoast in texteq/textne/byteaeq/byteane for unequal-length strings.
We can get the length of a compressed or out-of-line datum without actually
detoasting it.  If the lengths of two strings are unequal, we can then
conclude they are unequal without detoasting.  That saves considerable work
in an admittedly less-common case, without costing anything much when the
optimization doesn't apply.

Noah Misch
2011-01-18 14:11:54 -05:00
6e1726d082 Log replication connections only when log_connections is on
Previously we'd always log replication connections, with no
way to turn them off.
2011-01-18 20:02:25 +01:00
b1dc45c11d Fix thinko in comment. Spotted by Jim Nasby. 2011-01-18 10:46:13 +02:00
4acfd43a7d Remove "github test" that somehow got into my tree. Sorry. 2011-01-17 21:40:42 -05:00
2c38cce1be github test 2011-01-17 20:48:49 -05:00
46211da1b8 Use HTABs instead of Python dictionary objects to cache procedures
Two separate hash tables are used for regular procedures and for
trigger procedures, since the way trigger procedures work is quite
different from normal stored procedures.  Change the signatures of
PLy_procedure_{get,create} to accept the function OID and a Boolean
flag indicating whether it's a trigger.  This should make implementing
a PL/Python validator easier.

Using HTABs instead of Python dictionaries makes error recovery
easier, and allows for procedures to be cached based on their OIDs,
not their names.  It also allows getting rid of the PyCObject field
that used to hold a pointer to PLyProcedure, since PyCObjects are
deprecated in Python 2.7 and replaced by Capsules in Python 3.

Jan Urbański
2011-01-17 21:46:36 +02:00
bdd8ed973d Fix miscalculation of itemsafter in array_set_slice().
If the slice to be assigned to was before the existing array lower bound
(requiring at least one null element to spring into existence to fill the
gap), the code miscalculated how many entries needed to be copied from
the old array's null bitmap.  This could result in trashing the array's
data area (as seen in bug #5840 from Karsten Loesing), or worse.

This has been broken since we first allowed the behavior of assigning to
non-adjacent slices, in 8.2.  Back-patch to all affected versions.
2011-01-17 12:38:52 -05:00
978445bece Increment Py_None refcount for NULL array elements
Per bug #5835 by Julien Demoor
Author: Alex Hunsaker
2011-01-17 13:04:53 -03:00
08af45f4ff Add getopt() support to test_fsync; also fix printf() format problem. 2011-01-17 09:36:25 -05:00
48075095ac Set fallback_application_name in walreceiver
Makes replication slaves identify themselves in the new
pg_stat_replication view.
2011-01-17 11:42:53 +01:00
34ef02b4d4 Before exiting walreceiver, fsync() all the WAL received.
Otherwise WAL recovery will replay the un-flushed WAL after walreceiver has
exited, which can lead to a non-recoverable standby if the system crashes hard
at that point.
2011-01-17 12:27:35 +02:00
e0c274679c In test_fsync, use #define for printf format of ops/sec. 2011-01-16 08:36:43 -05:00
6dc15e3bef Use O_DIRECT in O_SYNC test of different size. Restructure O_DIRECT
error reporting to be more consistent.
2011-01-15 19:40:49 -05:00
3eebb33ddd Reverse number of stars used for test_fsync details. 2011-01-15 18:40:10 -05:00
431605f666 In test_fsync, warn about options without o_direct that are not used by
Postgres, and cases where o_direct does not work with certain file systems.
2011-01-15 18:27:43 -05:00
6ca452ba7f Move a couple of declarations to reflect where the routines really are. 2011-01-15 16:09:05 -05:00
36750dcef5 Add .gitignore to silence git complaints about parser/scanner output files. 2011-01-15 16:05:28 -05:00
001d3664e3 Have test_fsync output details that fdatasync is the default
wal_sync_method on Linux.
2011-01-15 15:00:20 -05:00
169516ad93 Restructure test_fync to use modular C so there is less duplicate code
and it can be enhanced easier.
2011-01-15 14:42:48 -05:00
3866ff6149 Enumerate available tablespaces after starting the backup
This closes a race condition where if a tablespace was created
after the enumeration happened but before the do_pg_start_backup()
was called, the backup would be incomplete. Now that it's done
while we are in backup mode, WAL replay will recreate it during
restore.

Noted by Heikki.
2011-01-15 19:31:16 +01:00
3ab80cfe03 Improve output display of test_fsync. 2011-01-15 12:24:05 -05:00
677b06ca46 Apply patch for test_fsync to add tests for O_DIRECT.
Adjusted patch by Josh Berkus
2011-01-15 11:55:13 -05:00
8f5d65e916 Treat a WAL sender process that hasn't started streaming yet as a regular
backend, as far as the postmaster shutdown logic is concerned. That means,
fast shutdown will wait for WAL sender processes to exit before signaling
bgwriter to finish. This avoids race conditions between a base backup stopping
or starting, and bgwriter writing the shutdown checkpoint WAL record. We don't
want e.g the end-of-backup WAL record to be written after the shutdown
checkpoint.
2011-01-15 16:38:21 +02:00