- 27 6月, 2011 9 次提交
-
-
由 Robert Haas 提交于
It's been like this since HOT was originally introduced, but the logic is complex enough that this is a recipe for bugs, as we've already found out with SSI. So refactor heap_hot_search_buffer() so that it can satisfy the needs of index_getnext(), and make index_getnext() use that rather than duplicating the logic. This change was originally proposed by Heikki Linnakangas as part of a larger refactoring oriented towards allowing index-only scans. I extracted and adjusted this part, since it seems to have independent merit. Review by Jeff Davis.
-
由 Peter Eisentraut 提交于
-
由 Peter Eisentraut 提交于
DEF_PGPORT already comes in from pg_config.h, so we don't need to pass it in again with a -D option. Apparently a leftover from the shell script conversion.
-
由 Peter Eisentraut 提交于
This doesn't actually change the resulting set of strings, but better be correct.
-
由 Peter Eisentraut 提交于
The --flag argument can be used to tell xgettext the arguments of which functions should be flagged with c-format in the PO files, instead of guessing based on the presence of format specifiers, which fails if no format specifiers are present but the translation accidentally introduces one. Appropriate flag settings have been added for each message catalog. based on a patch by Christoph Berg for bug #6066
-
由 Peter Eisentraut 提交于
Put gettext trigger words that are common to the backend and backend modules into a makefile variable to include everywhere, to avoid error-prone repetitions.
-
由 Peter Eisentraut 提交于
-
由 Peter Eisentraut 提交于
Since it's globally defined in c.h, it should be treated as a gettext trigger everywhere.
-
由 Peter Eisentraut 提交于
It currently doesn't make a difference, but it's inconsistent with most other usage, and it might interfere with a future patch, so I'll change it all in a separate commit. Also, replace tabs with spaces for alignment.
-
- 26 6月, 2011 1 次提交
-
-
由 Peter Eisentraut 提交于
-
- 24 6月, 2011 1 次提交
-
-
由 Peter Eisentraut 提交于
-
- 23 6月, 2011 5 次提交
-
-
由 Tom Lane 提交于
s/const//g wasn't exactly what I was suggesting here ... parameter declarations of the form "const structtype *param" are good and useful, so put those occurrences back. Likewise, avoid casting away the const in a "const void *" parameter.
-
由 Tom Lane 提交于
-
由 Tom Lane 提交于
Per bug #6073 from Hartmut Raschick.
-
由 Tom Lane 提交于
backend/Makefile was treating errcodes.h as a header always generated during build, but actually it's a header provided in tarballs. Hence, must use the absolute-symlink recipe, not the relative-symlink one. Per bug #6072 from Hartmut Raschick.
-
- 22 6月, 2011 9 次提交
-
-
由 Robert Haas 提交于
It's not entirely stable. Per suggestion from Josh Kupershmidt.
-
由 Heikki Linnakangas 提交于
As Tom Lane pointed out, "const Relation foo" doesn't guarantee that you can't modify the data the "foo" pointer points to. It just means that you can't change the pointer to point to something else within the function, which is not very useful.
-
由 Robert Haas 提交于
This involves two main changes from the previous behavior. First, when we set a bit in the visibility map, emit a new WAL record of type XLOG_HEAP2_VISIBLE. Replay sets the page-level PD_ALL_VISIBLE bit and the visibility map bit. Second, when inserting, updating, or deleting a tuple, we can no longer get away with clearing the visibility map bit after releasing the lock on the corresponding heap page, because an intervening crash might leave the visibility map bit set and the page-level bit clear. Making this work requires a bit of interface refactoring. In passing, a few minor but related cleanups: change the test in visibilitymap_set and visibilitymap_clear to throw an error if the wrong page (or no page) is pinned, rather than silently doing nothing; this case should never occur. Also, remove duplicate definitions of InvalidXLogRecPtr. Patch by me, review by Noah Misch.
-
由 Robert Haas 提交于
Josh Kupershmidt
-
由 Robert Haas 提交于
This is just like serial and bigserial, except it generates an int2 column rather than int4 or int8. Mike Pultz, reviewed by Brar Piening and Josh Kupershmidt
-
由 Robert Haas 提交于
This allows deadlock_timeout to be reduced for transactions that are particularly likely to be involved in a deadlock, thus detecting it more quickly. It is also potentially useful as a poor-man's deadlock priority mechanism: a transaction with a high deadlock_timeout is less likely to be chosen as the victim than one with a low deadlock_timeout. Since that could be used to game the system, we make this PGC_SUSET rather than PGC_USERSET. At some point, it might be worth thinking about a more explicit priority mechanism, since using this is far from fool-proof. But let's see whether there's enough use case to justify the additional work before we go down that route. Noah Misch, reviewed by Shigeru Hanada
-
由 Robert Haas 提交于
Initially, we use this only to eliminate calls to the varchar() function in cases where the length is not being reduced and, therefore, the function call is equivalent to a RelabelType operation. The most significant effect of this is that we can avoid a table rewrite when changing a varchar(X) column to a varchar(Y) column, where Y > X. Noah Misch, reviewed by me and Alexey Klyukin
-
由 Tom Lane 提交于
Fix some grammatical issues, try to clarify a couple of proofs, make the terminology more consistent.
-
由 Peter Eisentraut 提交于
-
- 21 6月, 2011 4 次提交
-
-
由 Heikki Linnakangas 提交于
used when max_prepared_transactions=0, for the recent changes in the test case.
-
由 Heikki Linnakangas 提交于
already been marked as PREPARED cannot be killed. Kill the current transaction instead. One of the prepared_xacts regression tests actually hits this bug. I removed the anomaly from the duplicate-gids test so that it fails in the intended way, and added a new test to check serialization failures with a prepared transaction. Dan Ports
-
由 Heikki Linnakangas 提交于
MARKED_FOR_DEATH flags into one. We still need the ROLLED_BACK flag to mark transactions that are in the process of being rolled back. To be precise, ROLLED_BACK now means that a transaction has already been discounted from the count of transactions with the oldest xmin, but not yet removed from the list of active transactions. Dan Ports
-
由 Tom Lane 提交于
When recursing after an optimization in pull_up_sublinks_qual_recurse, the available_rels value passed down must include only the relations that are in the righthand side of the new SEMI or ANTI join; it's incorrect to pull up a sub-select that refers to other relations, as seen in the added test case. Per report from BangarRaju Vadapalli. While at it, rethink the idea of recursing below a NOT EXISTS. That is essentially the same situation as pulling up ANY/EXISTS sub-selects that are in the ON clause of an outer join, and it has the same disadvantage: we'd force the two joins to be evaluated according to the syntactic nesting order, because the lower join will most likely not be able to commute with the ANTI join. That could result in having to form a rather large join product, whereas the handling of a correlated subselect is not quite that dumb. So until we can handle those cases better, #ifdef NOT_USED that case. (I think it's okay to pull up in the EXISTS/ANY cases, because SEMI joins aren't so inflexible about ordering.) Back-patch to 8.4, same as for previous patch in this area. Fortunately that patch hadn't made it into any shipped releases yet.
-
- 20 6月, 2011 4 次提交
-
-
由 Alvaro Herrera 提交于
Some callers were creating copies of tuple descriptors to pass to that function, stating in code comments that it was necessary because it modified the passed descriptor. Code inspection reveals this not to be true, and indeed not all callers are passing copies in the first place. So remove the extra ones and the misleading comments about this behavior as well.
-
由 Michael Meskes 提交于
Applied patch by Christoph Berg <cb@df7cb.de> to replace placeholder "%s" by correct string.
-
由 Tom Lane 提交于
-
由 Tom Lane 提交于
I mis-simplified the test where ANALYZE decided if it could get away without doing anything: under the new regime, that's never allowed. Per bug #6068 from Jeff Janes. Back-patch to 8.4, just like previous patch.
-
- 19 6月, 2011 3 次提交
-
-
由 Peter Eisentraut 提交于
-
由 Peter Eisentraut 提交于
-
由 Magnus Hagander 提交于
Since we now have a global rule in the root .gitignore, there's no need to keep directory-specific ones as well. Noted by Peter Eisentraut
-
- 18 6月, 2011 4 次提交
-
-
由 Andrew Dunstan 提交于
Per gripe from Tom Lane. I have tested this with VC 2008, and assume it will work with earlier versions.
-
由 Tom Lane 提交于
For some reason, when we (I) added table lock acquisition to pg_dump, we didn't think about making it happen as soon as possible after the start of the transaction. What with subsequent additions, there was actually quite a lot going on before we got around to that; which sort of defeats the purpose. Rearrange the order of calls in dumpSchema() to close the risk window as much as we easily can. Back-patch to all supported branches.
-
由 Robert Haas 提交于
The previous code went into an infinite loop after overflow. In fact, an overflow is not really an error; it just means that the current value is the last one we need to return. So, just arrange to stop immediately when overflow is detected. Back-patch all the way.
-
由 Robert Haas 提交于
The code that created the init fork neglected to make sure that the relation was open at the smgr level before attempting to invoke smgr. This didn't happen every time; only when the relcache entry was rebuilt along the way. Per report from Garick Hamlin.
-