| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
| |
the to_char() source code is large, here are regression tests for
numeric/timestamp/int8 part. It is probably enough test for formatting
code in the formatting.c module. The others (float4/float8/int4) types
share this formatting code and eventual bugs for these types aren't
few probable.
Patch fix timestamp_to_char() for infinity/invalid timestamp too.
Karel
|
|
|
|
|
|
|
|
|
| |
field. cf. Tom Lane's <19021.950544016@sss.pgh.pa.us> 14 Feb hackers
message.
Cheers,
Patrick Welche
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(Subj: [PORTS] initdb problem on NT with 7.0). Since nobody helped me,
I had to find out the reson. The difference between NT and Linux (for
instance) is that "open( path, O_RDWR );" opens a file in text mode. So
sometime less block can be read than required.
I suggest a following patch. BTW the situation appeared before, see
hba.c, pqcomm.c and others.
Alexei Zakharov
|
|
|
|
| |
parameters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when you have networks with the same prefix, but different netmasks.
This is due to the fact that occassionally there is random
(uninitialized?)
data in the extra bits past the point where the netmask cares about
them.
ie (real data from a real live database):
10.0/10 == 00001010.00100000.00100000.00011000
10.0/11 == 00001010.00000000.00000000.00000000
^ Bad data, normally never seen
The v4bitncmp() function was only taking one bit length argument so
it would determine that the networks were different, even though
they really aren't (and the netmask test wouldn't be used). This
ONLY happens if the tuple with the longer bit length is used as the
ip_bits() for the v4bitncmp call AND there happens to be junk data
in place in the shorter tuple. Odd and random, but I saw it happen
a couple times so...
Ryan Mooney
|
|
|
|
| |
looks like it will save computation to do so.
|
|
|
|
| |
closing a relcache entry more times than you open it is not cool.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
as independent clauses in the grammar. analyze.c takes care of putting
the data where it belongs and complaining about invalid combinations.
Also, make TEMP (and TEMPORARY) non-reserved words.
|
| |
|
|
|
|
|
|
|
| |
integrity triggers to after statement allways. Ignores
deferred state now, closer to SQL3 semantics.
Jan
|
| |
|
| |
|
| |
|
|
|
|
| |
correctly (the lztext value will be promoted to text automatically).
|
|
|
|
|
|
| |
into lztext.
Jan
|
| |
|
|
|
|
|
|
|
| |
failures. Fix some outright bugs too, including a reference to
uninitialized memory that would cause failures like this one:
select -('1234567890.1234567'::text);
ERROR: Unable to locate type oid 2139062143 in catalog
|
| |
|
|
|
|
|
| |
for Thomas to do the datetime consolidation before touching this, but
it's done now...)
|
|
|
|
|
| |
a specific length or precision, such as foo::char(8). Remove erroneous
removal of user-written casts at the top level of a SELECT target item.
|
|
|
|
|
|
|
|
|
|
|
| |
such as bpchar(char_expression, N), and pull out the attrtypmod that
the function is coercing to. This allows correct deduction of the
column type in examples such as
CREATE VIEW v AS SELECT f1::char(8) FROM tbl;
Formerly we labeled v's column as char-of-unknown-length not char(8).
Also, this change causes the parser not to insert a redundant length
coercion function if the user has explicitly casted an INSERT or UPDATE
expression to the right length.
|
|
|
|
| |
refer to the single-byte char type. 7.0 was taking it as bpchar(1).
|
|
|
|
|
| |
It worked, because they both have fields named 'data', but it's surely
trouble waiting to happen. I wonder whether there are more ...
|
|
|
|
|
|
|
| |
it's a good idea to choose the directory size based on the expected
number of entries. But ShmemInitHash was using a hard-wired constant.
Boo hiss. This accounts for recent report of postmaster failure when
asking for 64K or more buffers.
|
|
|
|
|
|
| |
defaulted the opclass. This addresses TODO item
* Allow creation of functional indexes to use default types
(Does that make it a feature? Oh dear...)
|
|
|
|
| |
from previous release.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
as a unary minus operator for numeric. Now that long numeric constants
will get converted to NUMERIC in early parsing, it's essential to have
numeric->int8 conversion to avoid 'can't convert' errors on undecorated
int8 constants. Threw in the rest for completeness while I was in the
area.
I did not force an initdb for this, since the system will still run
without the new pg_proc/pg_operator entries. Possibly I should've.
|
|
|
|
|
|
|
|
| |
and produce either FLOAT8 or NUMERIC output depending on whether the
value fits in a float8 or not. This is almost back to the way the
code was before I changed T_Float, but there is a critical difference:
now, when a numeric constant doesn't fit in float8, it will be treated
as type NUMERIC instead of type UNKNOWN.
|
| |
|
| |
|
|
|
|
|
| |
failed to negate a negative value back to positive, so '- - 123.45'
did the wrong thing.
|
|
|
|
| |
Thomas gets back, but better this than nonfunctional pg_dump in the beta.
|
| |
|
|
|
|
|
|
|
|
| |
integers) to be strings instead of 'double'. We convert from string form
to internal representation only after type resolution has determined the
correct type for the constant. This eliminates loss-of-precision worries
and gets rid of the change in behavior seen at 17 digits with the
previous kluge.
|
| |
|
|
|
|
| |
performance in catcache lookups.
|
|
|
|
|
| |
* Allow PQrequestCancel() to terminate when in waiting-for-lock state
Changes are limited to BACKEND,however.
|
|
|
|
|
|
|
| |
portion of the query result that will be retrieved. As far as I could
tell, the consensus was that we should let the planner do the best it
can with a LIMIT query, and require the user to add ORDER BY if he
wants consistent results from different LIMIT values.
|
|
|
|
|
|
|
| |
as representing a type coercion request in more cases than we did before.
It will work now whenever no underlying function is required, ie if the
coercion is binary-compatible or if the argument is a previously untyped
string constant. Otherwise, you still need a real function to exist.
|
|
|
|
|
|
|
|
|
|
| |
represent the result of a binary-compatible type coercion. At runtime
it just evaluates its argument --- but during type resolution, exprType
will pick up the output type of the RelabelType node instead of the type
of the argument. This solves some longstanding problems with dropped
type coercions, an example being 'select now()::abstime::int4' which
used to produce date-formatted output, not an integer, because the
coercion to int4 was dropped on the floor.
|
|
|
|
|
|
|
|
|
|
|
| |
agg_select_candidate, which could cause them to keep more candidates
than they should and thus fail to select a single match. I had
previously fixed the identical bug in oper_select_candidate, but
didn't realize that the same error was repeated over here.
Also, repair func_select_candidate's curious notion that it could
scribble on the input type-OID vector. That was causing failure to
apply necessary type coercion later on, leading to malfunction of
examples such as select date('now').
|
|
|
|
|
|
|
|
|
| |
a few bricks shy of a load concerning knowing all the date/time types.
This is real bad because it interferes with func_select_candidate()'s
willingness to disambiguate functions --- func_select_candidate() will
punt unless all the available choices have the same type category.
I think this whole mechanism needs redesigned, but in the meantime
this is a needed patch.
|
|
|
|
|
|
| |
command line processing. As it stood, a bogus PGOPTIONS value from
a client would force a database system restart. Not bad as a denial-
of-service attack...
|
|
|
|
|
| |
Revised code probably accepts some silly combinations, but that's better
than not accepting valid ones.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
interpret a column name as an output column alias (targetlist AS name),
ather than a real column name as it ought to. According to the spec,
only ORDER BY should look at output column names. I left in GROUP BY's
willingness to use an output column number ('GROUP BY 2'), even though
this is also contrary to the spec --- again, only ORDER BY is supposed
to accept that. But there is no possible reason to want to GROUP BY
an integer constant, so keeping this old behavior won't break any
SQL-compliant queries. DISTINCT ON will behave the same as GROUP BY.
Change numerology regress test, which depended on the incorrect
behavior.
|