- 25 Oct, 2013 5 commits
-
-
Tom Lane authored
It's not entirely clear why some PPC machines are generating -0 here, since the underlying computation should be exactly 0 - 0. Perhaps there's some wider-than-nominal-precision calculations happening? Anyway, the best way to avoid platform-dependent results seems to be to explicitly reset -0 to regular zero.
-
Peter Eisentraut authored
-
Tom Lane authored
This prevents the recently-added probe for shm_open() from crashing on platforms that are impolite enough to deliver a signal rather than returning ENOSYS for an unimplemented kernel call. At least on the one known example (HPUX 10.20), ignoring SIGSYS does result in the desired behavior of getting an ENOSYS error return instead. Per discussion, we might later wish to do this in the backend as well, but for now it seems sufficient to do it in initdb.
-
Tom Lane authored
When we are using a C99-compliant vsnprintf implementation (which should be most places, these days) it is worth the trouble to make use of its report of how large the buffer needs to be to succeed. This patch adjusts stringinfo.c and some miscellaneous usages in pg_dump to do that, relying on the logic recently added in libpgcommon's psprintf.c. Since these places want to know the number of bytes written once we succeed, modify the API of pvsnprintf() to report that. There remains near-duplicate logic in pqexpbuffer.c, but since that code is in libpq, psprintf.c's approach of exit()-on-error isn't appropriate for use there. Also note that I didn't bother touching the multitude of places that call (v)snprintf without any attempt to provide a resizable buffer. Release-note-worthy incompatibility: the API of appendStringInfoVA() changed. If there's any third-party code that's calling that directly, it will need tweaking along the same lines as in this patch. David Rowley and Tom Lane
-
- 24 Oct, 2013 5 commits
-
-
Heikki Linnakangas authored
When a backend process is forked, we initialize the system's random number generator with srandom(). The seed used is derived from the backend's pid and the timestamp. However, we only used the microseconds part of the timestamp, and it was XORed with the pid, so the total range of different seed values chosen was 0-999999. That's quite limited. Change the code to also use the seconds part of the timestamp in the seed, and shift the microseconds so that all 32 bits of the seed are used. Honza Horak
-
Heikki Linnakangas authored
Move random() and setseed() to a separate table, to have them grouped together. Also add a notice that random() is not cryptographically secure. Original patch by Honza Horak, although I didn't use his version.
-
Heikki Linnakangas authored
The absolute path to config file was not pfreed. There are probably more small leaks here and there in the config file reload code and assign hooks, and in practice no-one reloads the config files frequently enough for it to be a problem, but this one is trivial enough that might as well fix it. Backpatch to 9.3 where the leak was introduced.
-
Heikki Linnakangas authored
Hari Babu
-
Heikki Linnakangas authored
-
- 23 Oct, 2013 3 commits
-
-
Robert Haas authored
Since an increasing number of views and foreign tables are now able to be updated, complete with any table, view, or foreign table in the relevant contexts. This avoids the need to use a complex query that may be both confusing to end-users and nonperformant to construct the list of possible completions. Dean Rasheed, persuant to a complaint from Bernd Helme and a suggestion from Peter Eisentraut
-
Heikki Linnakangas authored
Use a critical section when setting the all-visible flag on an empty page, and WAL-logging it. log_newpage_buffer() contains an assertion that it must be called inside a critical section, and it's the right thing to do when modifying a buffer anyway. Also, the page should be marked dirty before calling log_newpage_buffer(), per the comment in log_newpage_buffer() and src/backend/access/transam/README. Patch by Andres Freund, in response to my report. Backpatch to 9.2, like the patch that introduced these bugs (a6370fd9).
-
Tom Lane authored
To wit, bgworker.c: In function `RegisterDynamicBackgroundWorker': bgworker.c:761: warning: `generation' might be used uninitialized in this function dsm_impl.c: In function `dsm_impl_op': dsm_impl.c:197: warning: control reaches end of non-void function Neither of these represent actual bugs, but we may as well tweak the code so that more compilers can tell that. This won't change the generated code on compilers that do recognize that the cases are unreachable.
-
- 22 Oct, 2013 5 commits
-
-
Tom Lane authored
This eliminates an awkward coding pattern that's also unnecessarily inconsistent with backend coding. psprintf() is now the thing to use everywhere.
-
Tom Lane authored
asprintf(), aside from not being particularly portable, has a fundamentally badly-designed API; the psprintf() function that was added in passing in the previous patch has a much better API choice. Moreover, the NetBSD implementation that was borrowed for the previous patch doesn't work with non-C99-compliant vsnprintf, which is something we still have to cope with on some platforms; and it depends on va_copy which isn't all that portable either. Get rid of that code in favor of an implementation similar to what we've used for many years in stringinfo.c. Also, move it into libpgcommon since it's not really libpgport material. I think this patch will be enough to turn the buildfarm green again, but there's still cosmetic work left to do, namely get rid of pg_asprintf() in favor of using psprintf(). That will come in a followon patch.
-
Peter Eisentraut authored
-
Heikki Linnakangas authored
Previous commit modified the test case, but I didn't update cube.out expected output file in previous commit because it was not needed by the platforms I have easy access to. Buildfarm animal 'dugong', running "Debian 4.0 icc 10.1.011 ia64", has now gone red because of that, so update it now. Also adjust cube_3.out. According to git history, it was added to support 64-bit MinGW. There is no such animal in the buildfarm, so I'm doing this blindly, but it was added quite recently so maybe someone still cares.
-
Tom Lane authored
Doesn't anybody here pay attention to compiler warnings?
-
- 21 Oct, 2013 3 commits
-
-
Heikki Linnakangas authored
If the lower left and upper right corners of a cube are the same, set a flag in the cube header, and only store one copy of the coordinates. That cuts the on-disk size into half for the common case that the cube datatype is used to represent points rather than boxes. The new format is backwards-compatible with the old one, so pg_upgrade still works. However, to get the space savings, the data needs to be rewritten. A simple VACUUM FULL or REINDEX is not enough, as the old Datums will just be moved to the new heap/index as is. A pg_dump and reload, or something similar like casting to text and back, will do the trick. This patch deliberately doesn't update all the alternative expected output files, as I don't have access to machines that produce those outputs. I'm not sure if they are still relevant, but if they are, the buildfarm will tell us and produce the diff required to fix it. If none of the buildfarm animals need them, they should be removed altogether. Patch by Stas Kelvich.
-
Peter Eisentraut authored
Add a makefile rule for building PDFs with FOP. Two new build targets in doc/src/sgml are postgres-A4-fop.pdf and postgres-US-fop.pdf. Run .fo output through xmllint for reformatting, so that errors are easier to find. (The default output has hardly any line breaks, so you might be looking for an error in column 20000.) Set some XSLT parameters to optimize for building with FOP. Remove some redundant or somewhat useless chapterinfo/author information, because it renders strangely with the FO stylesheet. Reviewed-by: Álvaro Herrera <alvherre@2ndquadrant.com>
-
Noah Misch authored
This avoids an assumption about the signed number representation. It is anticipated to have no functional changes on supported configurations; many two's complement assumptions remain elsewhere. Per a suggestion from Andres Freund.
-
- 19 Oct, 2013 4 commits
-
-
Peter Eisentraut authored
This ought to have been done when libpgcommon was split off from libpgport.
-
Peter Eisentraut authored
-
Peter Eisentraut authored
It requires pgfnames() from libpgcommon.
-
Peter Eisentraut authored
It requires pstrdup() from libpgcommon.
-
- 18 Oct, 2013 8 commits
-
-
Robert Haas authored
Previously, unless all columns were auto-updateable, we wouldn't inserts, updates, or deletes, or at least not without a rule or trigger; now, we'll allow inserts and updates that target only the auto-updateable columns, and deletes even if there are no auto-updateable columns at all provided the view definition is otherwise suitable. Dean Rasheed, reviewed by Marko Tiikkaja
-
Robert Haas authored
Although previously-introduced APIs allow the process that registers a background worker to obtain the worker's PID, there's no way to prevent a worker that is not currently running from being restarted. This patch introduces a new API TerminateBackgroundWorker() that prevents the background worker from being restarted, terminates it if it is currently running, and causes it to be unregistered if or when it is not running. Patch by me. Review by Michael Paquier and KaiGai Kohei.
-
Peter Eisentraut authored
Based-on-patch-by: David Rowley <dgrowleyml@gmail.com>
-
Peter Eisentraut authored
From: Asif Naeem <anaeem.it@gmail.com>
-
Peter Eisentraut authored
-
Robert Haas authored
Development of IRIX has been discontinued, and support is scheduled to end in December of 2013. Therefore, there will be no supported versions of this operating system by the time PostgreSQL 9.4 is released. Furthermore, we have no maintainer for this platform.
-
Peter Eisentraut authored
Continuing 63f32f34, libpgcommon should depend on libpgport, but not vice versa. But wait_result_to_str() in wait_error.c depends on pstrdup() in libpgcommon. So move exec.c and wait_error.c from libpgport to libpgcommon. Also switch the link order in the place that's actually used by the failing ecpg builds. The function declarations have been left in port.h for now. That should perhaps be separated sometime.
-
Peter Eisentraut authored
The default table of contents in the XSLT HTML build is much too big and deep. Configure it to look more like the one that is currently being produced by the DSSSL build.
-
- 17 Oct, 2013 3 commits
-
-
Robert Haas authored
All of these platforms are very much obsolete. As far as I can determine, the last version of SINIX, later renamed Reliant, occurred some time between 2002 and 2005. The last release of SunOS that would run on a sun3 was released in November of 1991; the last release of OpenBSD which supported that platform was in 2001. The highest clock speed of any processor in the family was 25MHz. The NS32K (national semiconductor 320xx) architecture was retired in 1990. Support can be re-added if a maintainer emerges for any of these platforms, but it seems unlikely. Reviewed by Andres Freund.
-
Andrew Dunstan authored
Oskari Saarenmaa.
-
Alvaro Herrera authored
Per Jaime Casanova and Vik Fearing
-
- 16 Oct, 2013 4 commits
-
-
Bruce Momjian authored
Report from Haribabu Kommi
-
Robert Haas authored
This might not be the right long-term solution here, but it will hopefully turn the buildfarm green again. Oversight noted by Andres Freund
-
Peter Eisentraut authored
Conceptually, libpgcommon can depend on libpgport, but not the other way around. In the past, this might not have mattered, but it's needed now for asprintf.
-
Peter Eisentraut authored
The XSLT toolchain requires an empty <index> element where the index is supposed to appear. Add that with conditionals to hide it from the DSSSL build.
-