| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
| |
specific hash functions used by hash indexes, rather than the old
not-datatype-aware ComputeHashFunc routine. This makes it safe to do
hash joining on several datatypes that previously couldn't use hashing.
The sets of datatypes that are hash indexable and hash joinable are now
exactly the same, whereas before each had some that weren't in the other.
|
|
|
|
| |
work at all, and neither case behaved sanely for negative intervals.
|
|
|
|
|
|
|
|
|
|
| |
I'd placed the check for newly created matching pk rows for on update no
action earlier than it needed to be so that it'd check even when the key
values hadn't changed. This patch moves it to after checking for NULLs
in the old row and comparing the values since the select's probably more
expensive.
Stephan Szabo
|
| |
|
|
|
|
| |
Per recent gripe.
|
|
|
|
|
|
|
|
|
|
|
| |
of an index can now be a computed expression instead of a simple variable.
Restrictions on expressions are the same as for predicates (only immutable
functions, no sub-selects). This fixes problems recently introduced with
inlining SQL functions, because the inlining transformation is applied to
both expression trees so the planner can still match them up. Along the
way, improve efficiency of handling index predicates (both predicates and
index expressions are now cached by the relcache) and fix 7.3 oversight
that didn't record dependencies of predicate expressions.
|
|
|
|
|
| |
docs that CLIENT/LOG_MIN_MESSAGES now controls debug_* output location.
Doc changes included.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
blanks, in hopes of reducing the surprise factor for newbies. Remove
redundant operators for VARCHAR (it depends wholly on TEXT operations now).
Clean up resolution of ambiguous operators/functions to avoid surprising
choices for domains: domains are treated as equivalent to their base types
and binary-coercibility is no longer considered a preference item when
choosing among multiple operators/functions. IsBinaryCoercible now correctly
reflects the notion that you need *only* relabel the type to get from type
A to type B: that is, a domain is binary-coercible to its base type, but
not vice versa. Various marginal cleanup, including merging the essentially
duplicate resolution code in parse_func.c and parse_oper.c. Improve opr_sanity
regression test to understand about binary compatibility (using pg_cast),
and fix a couple of small errors in the catalogs revealed thereby.
Restructure "special operator" handling to fetch operators via index opclasses
rather than hardwiring assumptions about names (cleans up the pattern_ops
stuff a little).
|
| |
|
|
|
|
|
|
|
| |
single-byte encodings, and a direct C implementation of the single-argument
forms (where spaces are always what gets trimmed). This is in preparation
for using rtrim1() as the bpchar-to-text cast operator, but is a useful
performance improvement even if we decide not to do that.
|
|
|
|
| |
qualified when necessary, simplify argument-printing code.
|
|
|
|
|
|
|
|
| |
Ross Reedstrom, a couple months back) and to detect timezones that are
using leap-second timekeeping. The unknown-zone-name test is pretty
heuristic and ugly, but it seems better than the old behavior of just
switching to GMT given a bad name. Also make DecodePosixTimezone() a
tad more robust.
|
|
|
|
| |
class when lc_collate is not C.
|
| |
|
|
|
|
|
| |
but that was enough tedium for one day. Along the way, move the few
support routines for types xid and cid into a more logical place.
|
|
|
|
| |
the folly of not passing element type to typsend/typreceive, so fix that.
|
|
|
|
| |
so that COPY BINARY regression test passes.
|
| |
|
|
|
|
| |
testing purposes.
|
|
|
|
|
| |
yet, but they're there. Also some editorial work on CREATE TYPE reference
page.
|
|
|
|
|
|
| |
Per recent discussion on pgsql-general, this is appropriate for spec
compliance, and has the nice side-effect of easing porting from old
pg_dump files that exhibit the 59.999=>60.000 roundoff problem.
|
|
|
|
| |
schema that was in our search path.
|
|
|
|
|
| |
as the correct user, not only query execution. Per report from Sean
Chittenden.
|
|
|
|
|
|
|
| |
rewritten and the protocol is changed, but most elog calls are still
elog calls. Also, we need to contemplate mechanisms for controlling
all this functionality --- eg, how much stuff should appear in the
postmaster log? And what API should libpq expose for it?
|
|
|
|
| |
value, per recent discussion on pgsql-general.
|
| |
|
|
|
|
|
|
| |
account for NULLs; in hindsight this is obvious since the code for
the MCV-lists case would reduce to this when there are zero entries
in both lists. Per example from Alec Mitchell.
|
|
|
|
|
|
|
| |
expressions, ARRAY(sub-SELECT) expressions, some array functions.
Polymorphic functions using ANYARRAY/ANYELEMENT argument and return
types. Some regression tests in place, documentation is lacking.
Joe Conway, with some kibitzing from Tom Lane.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on UPDATE.
This get's rid of the long standing annoyance that updating a row
that has foreign keys locks all the referenced rows even if the
foreign key values do not change.
The trick is to actually do a check identical to NO ACTION after an
eventually done UPDATE in the SET DEFAULT case. Since a SET DEFAULT
operation should have moved referencing rows to a new "home", a following
NO ACTION check can only fail if the column defaults of the referencing
table resulted in the key we actually deleted. Thanks to Stephan.
Jan
|
| |
|
|
|
|
|
| |
date2j(2000, 1, 1). Should make for some marginal speed improvement
in date/time operations.
|
|
|
|
|
| |
return type, make protection condition agree with recent change to
pg_stat_get_backend_activity, clean up documentation.
|
| |
|
|
|
|
| |
(ye good olde uninitialized-local-variable).
|
|
|
|
| |
bogus than it was. Per bug report from Adrian Pop.
|
|
|
|
| |
block, ala C++.
|
| |
|
|
|
|
|
|
|
| |
them as arrays of the internal datatype. This requires treating the
stavalues columns as 'anyarray' rather than 'text[]', which is not 100%
kosher but seems to work fine for the purposes we need for pg_statistic.
Perhaps in the future 'anyarray' will be allowed more generally.
|
|
|
|
| |
from Andreas Pflug.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
+ <entry><function>hostmask</function>(<type>inet</type>)</entry>
+ <entry><type>inet</type></entry>
+ <entry>construct hostmask for network</entry>
+ <entry><literal>hostmask('192.168.23.20/30')</literal></entry>
+ <entry><literal>0.0.0.3</literal></entry>
Greg Wickham
|
|
|
|
|
|
|
| |
some of the algorithms for higher functions. I see about a factor of ten
speedup on the 'numeric' regression test, but it's unlikely that that test
is representative of real-world applications.
initdb forced due to change of on-disk representation for NUMERIC.
|
|
|
|
|
|
|
| |
a trigger as its parameter. It is basically copied from the pg_dump
code.
Christopher Kings-Lynne
|
|
|
|
|
|
| |
queries while the rest remain blank.
Kevin Brown
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
what is capable using integer-datatime timestamps. It does attempt
to exercise the maximum allowable timestamp range.
Also is a small error check when converting a timestamp from external
to internal format that prevents out of range timestamps from being
entered.
Files patched:
Index: src/backend/utils/adt/timestamp.c
Added range check to prevent out of range timestamps
from being used.
Index: src/test/regress/sql/horology.sql
Index: src/test/regress/expected/horology-no-DST-before-1970.out
Index: src/test/regress/expected/horology-solaris-1947.out
Limited range of timestamps being checked to
Jan 1, 4713 BC to Dec 31, 294276
In creating this patch, I have seen some definite problems with integer
timestamps and how they react when used near their limits. For example,
the following statement gives the correct result:
SELECT timestamp without time zone 'Jan 1, 4713 BC'
+ interval '109203489 days' AS "Dec 31, 294276";
However, this statement which is the logical inverse of the above
gives incorrect results:
SELECT timestamp without time zone '12/31/294276'
- timestamp without time zone 'Jan 1, 4713 BC' AS "109203489 Days";
John Cochran
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
patch fix it -- but this patch doesn't contains tests or docs fixes. I
will send it later.
Fixed outputs:
select to_char(x, '9999.999') as x,
to_char(x, 'S9999.999') as s,
to_char(x, 'SG9999.999') as sg,
to_char(x, 'MI9999.999') as mi,
to_char(x, 'PL9999.999') as pl,
to_char(x, 'PLMI9999.999') as plmi,
to_char(x, '9999.999SG') as sg2,
to_char(x, '9999.999PL') as pl2,
to_char(x, '9999.999MI') as mi2 from num;
Karel Zak
|
|
|
|
| |
Neil Conway
|