- May 12, 2009
-
-
Tom Lane authored
xml_parse, all arising from the same sloppy usage of parse_xml_decl. The original coding had that function returning its output string parameters in the libxml context, which is long-lived, and all but one of its callers neglected to free the strings afterwards. The easiest and most bulletproof fix is to return the strings in the local palloc context instead, since that's short-lived. This was only costing a dozen or two bytes per function call, but that adds up fast if the function is called repeatedly ... Noted while poking at the more general problem of what to do with our libxml memory allocation hooks. Back-patch to 8.3, which has the identical coding.
-
- Apr 08, 2009
-
-
Peter Eisentraut authored
map_sql_value_to_xml_value() instead of directly through the data type output function. This is per SQL standard, and consistent with XMLELEMENT().
-
- Mar 27, 2009
-
-
Tom Lane authored
while converting to XML. Bernd Helmle
-
- Mar 23, 2009
-
-
Andrew Dunstan authored
-
- Jan 07, 2009
-
-
Tom Lane authored
not include postgres.h nor anything else it doesn't directly need. Add #includes to calling files as needed to compensate. Per my proposal of yesterday. This should be noted as a source code change in the 8.4 release notes, since it's likely to require changes in add-on modules.
-
- Jan 01, 2009
-
-
Bruce Momjian authored
-
- Nov 10, 2008
-
-
Tom Lane authored
the length of a UTF8 character with pg_mblen (wrong if DB encoding isn't UTF8), and the latter was blithely assuming that a static buffer would somehow revert to all zeroes for each use.
-
- Oct 29, 2008
-
-
Peter Eisentraut authored
-
- Oct 14, 2008
-
-
Tom Lane authored
the timestamp types. Turns out this doesn't even reduce the available range of dates, since the restriction to dates that work for Julian-date arithmetic is much tighter than the int32 range anyway. Per a longstanding TODO item.
-
- Oct 09, 2008
-
-
Tom Lane authored
Report and fix by Michael McMaster. Some minor code beautification by me, also avoid memory leaks in the special-case paths.
-
- Sep 16, 2008
-
-
Tom Lane authored
-
- Aug 26, 2008
-
-
Tom Lane authored
into nodes/nodeFuncs, so as to reduce wanton cross-subsystem #includes inside the backend. There's probably more that should be done along this line, but this is a start anyway.
-
- Jul 03, 2008
-
-
Tom Lane authored
fix by Kris Jurka.
-
- May 12, 2008
-
-
Alvaro Herrera authored
unnecessary #include lines in it. Also, move some tuple routine prototypes and macros to htup.h, which allows removal of heapam.h inclusion from some .c files. For this to work, a new header file access/sysattr.h needed to be created, initially containing attribute numbers of system columns, for pg_dump usage. While at it, make contrib ltree, intarray and hstore header files more consistent with our header style.
-
- May 04, 2008
-
-
Tom Lane authored
These changes assume that the varchar and xml data types are represented the same as text. (I did not, however, accept the portions of the proposed patch that wanted to assume bytea is the same as text --- tgl.) Brendan Jurd
-
- Apr 04, 2008
-
-
Magnus Hagander authored
xmloption GUC variables into enums..
-
- Mar 25, 2008
-
-
Tom Lane authored
strings. This patch introduces four support functions cstring_to_text, cstring_to_text_with_len, text_to_cstring, and text_to_cstring_buffer, and two macros CStringGetTextDatum and TextDatumGetCString. A number of existing macros that provided variants on these themes were removed. Most of the places that need to make such conversions now require just one function or macro call, in place of the multiple notational layers that used to be needed. There are no longer any direct calls of textout or textin, and we got most of the places that were using handmade conversions via memcpy (there may be a few still lurking, though). This commit doesn't make any serious effort to eliminate transient memory leaks caused by detoasting toasted text objects before they reach text_to_cstring. We changed PG_GETARG_TEXT_P to PG_GETARG_TEXT_PP in a few places where it was easy, but much more could be done. Brendan Jurd and Tom Lane
-
- Mar 24, 2008
-
-
Tom Lane authored
friends. Avoid double translation of some messages, ensure other messages are exposed for translation (and make them follow the style guidelines), avoid unsafe passing of an unpredictable message text as a format string.
-
- Mar 01, 2008
-
-
Tom Lane authored
left in the code though it was not meant to be provided. It represents a security hole because unprivileged users could use it to look at (at least the first line of) any file readable by the backend. Fortunately, this is only possible if the backend was built with XML support, so the damage is at least mitigated; and 8.3 probably hasn't propagated into any security-critical uses yet anyway. Per report from Sergey Burladyan.
-
- Jan 15, 2008
-
-
Tom Lane authored
in whichever context happens to be current during a call of an xml.c function, use a dedicated context that will not go away until we explicitly delete it (which we do at transaction end or subtransaction abort). This makes recovery after an error much simpler --- we don't have to individually delete the data structures created by libxml. Also, we need to initialize and cleanup libxml only once per transaction (if there's no error) instead of once per function call, so it should be a bit faster. We'll need to keep an eye out for intra-transaction memory leaks, though. Alvaro and Tom.
-
- Jan 12, 2008
-
-
Tom Lane authored
Therefore we must xmlCleanupParser(), or we risk leaving behind dangling pointers to whatever memory context is current when xml_init() is called. This seems to fix bug #3860, though we might still want the more invasive solution being worked on by Alvaro.
-
Neil Conway authored
SPI_prepare() and SPI_cursor_open(), to silence a Coverity warning.
-
Neil Conway authored
anyway, it is faster to memcpy() than to strcpy().
-
- Jan 01, 2008
-
-
Bruce Momjian authored
-
- Nov 28, 2007
-
-
Peter Eisentraut authored
-
- Nov 27, 2007
-
-
Tom Lane authored
-
Peter Eisentraut authored
immutable and indexable. Also fix the volatility settings of some other XML-related functions.
-
- Nov 25, 2007
-
-
Peter Eisentraut authored
-
- Nov 21, 2007
-
-
Tom Lane authored
happened to be right up against the end of memory, per report from Matt Magoffin. While at it, avoid useless multiple copying of string by not depending on xmlStrncatNew.
-
- Nov 15, 2007
-
-
Bruce Momjian authored
avoid this problem in the future.)
-
Bruce Momjian authored
-
- Nov 10, 2007
- Nov 09, 2007
-
-
Peter Eisentraut authored
those being exactly "xml". Bug #3735 from Ben Leslie
-
- Nov 08, 2007
-
-
Peter Eisentraut authored
-
Peter Eisentraut authored
-
- Nov 06, 2007
-
-
Tom Lane authored
Add some more xml_init() calls that might not be necessary, but seem like a good idea to avoid possible problems like we saw in xmlelement(). Fix unsafe assumption that you can keep using the tupledesc of a relcache entry you don't have open. Add missing error checks for SearchSysCache failure. Get rid of handwritten array traversal in xpath() and O(N^2), broken-for-nulls array access code in map_sql_value_to_xml_value(), in favor of using deconstruct_array. Manually adjust a lot of line breaks in places where the code is otherwise gonna look pretty awful after pg_indent hacks it up (original author seems to have liked to lay out code for a 200-column window).
-
- Nov 05, 2007
-
-
Tom Lane authored
assuming that evaluation of its input expressions won't change the state of libxml. This requires refactoring xml_init() to not call xmlInitParser(), since now not all of its callers want that. I also tweaked things to avoid repeated execution of one-time-only tests inside xml_init(), though this is mostly for clarity rather than in hopes of saving any noticeable amount of runtime. Per report from Sheikh Amjad and subsequent discussion. In passing, fix a couple of inadequately schema-qualified queries.
-
- Oct 13, 2007
-
-
Tom Lane authored
functions. Patch for the reported issue from Kris Jurka, some other potential trouble spots plugged by Tom.
-
Tom Lane authored
renumbering of encoding IDs done between 8.2 and 8.3 turns out to break 8.2 initdb and psql if they are run with an 8.3beta1 libpq.so. For the moment we can rearrange the order of enum pg_enc to keep the same number for everything except PG_JOHAB, which isn't a problem since there are no direct references to it in the 8.2 programs anyway. (This does force initdb unfortunately.) Going forward, we want to fix things so that encoding IDs can be changed without an ABI break, and this commit includes the changes needed to allow libpq's encoding IDs to be treated as fully independent of the backend's. The main issue is that libpq clients should not include pg_wchar.h or otherwise assume they know the specific values of libpq's encoding IDs, since they might encounter version skew between pg_wchar.h and the libpq.so they are using. To fix, have libpq officially export functions needed for encoding name<=>ID conversion and validity checking; it was doing this anyway unofficially. It's still the case that we can't renumber backend encoding IDs until the next bump in libpq's major version number, since doing so will break the 8.2-era client programs. However the code is now prepared to avoid this type of problem in future. Note that initdb is no longer a libpq client: we just pull in the two source files we need directly. The patch also fixes a few places that were being sloppy about checking for an unrecognized encoding name.
-