1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-15 03:41:20 +03:00
Commit Graph

1708 Commits

Author SHA1 Message Date
Tom Lane
5433b48380 Tweak sorting so that nulls appear at the front of a descending sort
(vs. at the end of a normal sort).  This ensures that explicit sorts
yield the same ordering as a btree index scan.  To be really sure that
that equivalence holds, we use the btree entries in pg_amop to decide
whether we are looking at a '<' or '>' operator.  For a sort operator
that has no btree association, we put the nulls at the front if the
operator is named '>' ... pretty grotty, but it does the right thing in
simple ASC and DESC cases, and at least there's no possibility of getting
a different answer depending on the plan type chosen.
2001-06-02 19:01:53 +00:00
Peter Eisentraut
e542036461 Native Language Support (NLS)
Use --enable-nls to turn it on; see installation instructions for details.
See developer's guide how to make use of it in programs and how to add
translations.

psql sources have been almost fully prepared and an incomplete German
translation has been provided.  In the backend, only elog() calls are
currently translatable, and the provided German translation file is more
of a placeholder.
2001-06-02 18:25:18 +00:00
Tom Lane
58193c5f37 Paranoia about unordered comparisons in IEEE float math. If we are
given values that compare as unordered, make sure we reply that they
are equal, which is better than giving an arbitrary answer --- at least
it doesn't depend on which one is passed as which arg.
2001-06-02 17:12:12 +00:00
Tom Lane
c6b1ef8fe7 Check for malloc failure. 2001-06-01 20:29:43 +00:00
Tom Lane
7c0c9b3cce New improved version of bpcharin() may have got the truncation case
right, but it failed to get the padding case right.

This was obscured by subsequent application of bpchar() in all but one
regression test case, and that one didn't fail in an obvious way ---
trailing blanks are hard to see.  Add another test case to make it
more obvious if it breaks again.
2001-06-01 17:49:17 +00:00
Tom Lane
0b370ea7c8 Clean up some minor problems exposed by further thought about Panon's bug
report on old-style functions invoked by RI triggers.  We had a number of
other places that were being sloppy about which memory context FmgrInfo
subsidiary data will be allocated in.  Turns out none of them actually
cause a problem in 7.1, but this is for arcane reasons such as the fact
that old-style triggers aren't supported anyway.  To avoid getting burnt
later, I've restructured the trigger support so that we don't keep trigger
FmgrInfo structs in relcache memory.  Some other related cleanups too:
it's not really necessary to call fmgr_info at all while setting up
the index support info in relcache entries, because those ScanKeyEntry
structs are never used to invoke the functions.  This should speed up
relcache initialization a tiny bit.
2001-06-01 02:41:36 +00:00
Tom Lane
e1107fc285 RI triggers would fail for datatypes using old-style equal function,
because cached fmgr info contained reference to a shorter-lived data
structure.  Also guard against possibility that fmgr_info could fail,
leaving an incomplete entry present in the hash table.
2001-05-31 17:32:33 +00:00
Bruce Momjian
53020d0fbe Remove OLD_FILE_NAMING code. No longer used. 2001-05-30 20:52:34 +00:00
Bruce Momjian
33f2614aa1 Remove SEP_CHAR, replace with / or '/' as appropriate. 2001-05-30 14:15:27 +00:00
Tom Lane
8a3b80deb0 Make text <=> char conversion functions convert zero character to and
from an empty text string.  This makes them consistent with the de facto
behavior of type char's I/O conversion functions, and avoids generating
text values with embedded nulls, which confuse many text operators.
2001-05-28 21:58:32 +00:00
Tatsuo Ishii
e23f8c4557 Fix a message error in utf_to_local 2001-05-28 01:00:25 +00:00
Tom Lane
73d1040bd9 Fix eqjoinsel() to make use of new statistics. 2001-05-27 17:37:48 +00:00
Peter Eisentraut
96147a6d1c Make UPDATE and DELETE privileges distinct. Add REFERENCES and TRIGGER
privileges.  INSERT and COPY FROM now require INSERT (only).  Add
privileges regression test.
2001-05-27 09:59:30 +00:00
Peter Eisentraut
efcecd9eca Make bit and bit varying types reject too long input. (They already tried
to do that, but inconsistently.)  Make bit type reject too short input,
too, per SQL.  Since it no longer zero pads, 'zpbit*' has been renamed to
'bit*' in the source, hence initdb.
2001-05-22 16:37:17 +00:00
Bruce Momjian
1b62a714dc The Watcom preprocessor adds a space at the start of each line. Therefore
the output of "egrep '^[0-9]' " is empty. Changing the pattern to
"egrep '^[ ]*[0-9]" generates the correct file.

Tegge, Bernd
2001-05-22 12:06:51 +00:00
Peter Eisentraut
5546ec289b Make char(n) and varchar(n) types raise an error if the inserted string is
too long.  While I was adjusting the regression tests I moved the array
things all into array.sql, to make things more manageable.
2001-05-21 16:54:46 +00:00
Tom Lane
be03eb25f3 Modify optimizer data structures so that IndexOptInfo lists built for
create_index_paths are not immediately discarded, but are available for
subsequent planner work.  This allows avoiding redundant syscache lookups
in several places.  Change interface to operator selectivity estimation
procedures to allow faster and more flexible estimation.
Initdb forced due to change of pg_proc entries for selectivity functions!
2001-05-20 20:28:20 +00:00
Peter Eisentraut
d1af54cf6d Make sure fmgr_info() fills in fn_oid last, so that no partially
initialized FmgrInfo structs linger after elog.
2001-05-19 09:28:08 +00:00
Peter Eisentraut
cb8b40e6d5 Allow special '$libdir' macro to show up in object file path in CREATE
FUNCTION command.  Guard against trying to load a directory.  Update
documentation some.
2001-05-19 09:01:10 +00:00
Bruce Momjian
f61d70c2ac Undo \dT change. Not worth it. 2001-05-18 22:54:23 +00:00
Bruce Momjian
2fd831d323 Rename ParseFuncOrColumn() to ParseColumnOrFunc(). 2001-05-18 22:35:51 +00:00
Tom Lane
a9da3fed30 Suppress compiler warnings about pid_t vs int. 2001-05-18 17:49:52 +00:00
Peter Eisentraut
761a0bb69b Add dynamic_library_path parameter and automatic appending of shared
library extension.
2001-05-17 17:44:18 +00:00
Bruce Momjian
80d4ae931a Small include file fix for pg_variabie.h 2001-05-14 22:06:41 +00:00
Bruce Momjian
783fbdab70 Remove columns pg_index.haskeytype and pg_index.indisclustered. Not used. 2001-05-14 21:53:16 +00:00
Bruce Momjian
1e7b79cebc Remove unused tables pg_variable, pg_inheritproc, pg_ipl tables. Initdb
forced.
2001-05-14 20:30:21 +00:00
Peter Eisentraut
2e1579a99f Make bootstrap debug messages more readable. Clean up some clutter. 2001-05-12 01:48:49 +00:00
Tom Lane
c23bc6fbb0 First cut at making indexscan cost estimates depend on correlation
between index order and table order.
2001-05-09 23:13:37 +00:00
Bruce Momjian
f598201348 Noticed a small bug in the code. Probably been there for some time. Note
that the original code would consider things like UNIX domain sockets are
regular files.

Gavin Sherry
2001-05-09 19:28:31 +00:00
Tom Lane
6cda3ad8fe Cause planner to make use of average-column-width statistic that is now
collected by ANALYZE.  Also, add some modest amount of intelligence to
guesses that are used for varlena columns in the absence of any ANALYZE
statistics.  The 'width' reported by EXPLAIN is finally something less
than totally bogus for varlena columns ... and, in consequence, hashjoin
estimating should be a little better ...
2001-05-09 00:35:09 +00:00
Peter Eisentraut
1c1c58c76c Add SET SESSION AUTHORIZATION command. 2001-05-08 21:06:43 +00:00
Bruce Momjian
ef06003b06 Fix comment in file about 2*max_connections. 2001-05-07 23:32:55 +00:00
Peter Eisentraut
465cf168eb Fix remaining RI permission problems (cascaded update/delete, restrict,
set null/default).
2001-05-07 19:57:24 +00:00
Tom Lane
f905d65ee3 Rewrite of planner statistics-gathering code. ANALYZE is now available as
a separate statement (though it can still be invoked as part of VACUUM, too).
pg_statistic redesigned to be more flexible about what statistics are
stored.  ANALYZE now collects a list of several of the most common values,
not just one, plus a histogram (not just the min and max values).  Random
sampling is used to make the process reasonably fast even on very large
tables.  The number of values and histogram bins collected is now
user-settable via an ALTER TABLE command.

There is more still to do; the new stats are not being used everywhere
they could be in the planner.  But the remaining changes for this project
should be localized, and the behavior is already better than before.

A not-very-related change is that sorting now makes use of btree comparison
routines if it can find one, rather than invoking '<' twice.
2001-05-07 00:43:27 +00:00
Tom Lane
f5ba72ea04 Consolidate several near-identical uses of mktime() into a single
routine DetermineLocalTimeZone().  In that routine, be more wary of
broken mktime() implementations than the original code was: don't allow
mktime to change the already-set y/m/d/h/m/s information, and don't
use tm_gmtoff if mktime failed.  Possibly this will resolve some of
the complaints we've been hearing from users of Middle Eastern timezones
on RedHat.
2001-05-03 22:53:07 +00:00
Bruce Momjian
0cec2bb0cd BTW it does not add encodign it just patches existing one (KOI8) to
support two - KOI8-R and KOI8-U (latter is superset of the former if
not to take to the account pseudographics)

Andy Rysin
2001-05-03 21:38:45 +00:00
Tom Lane
2792374cff Ensure that btree sort ordering functions and boolean comparison operators
give consistent results for all datatypes.  Types float4, float8, and
numeric were broken for NaN values; abstime, timestamp, and interval
were broken for INVALID values; timetz was just plain broken (some
possible pairs of values were neither < nor = nor >).  Also clean up
text, bpchar, varchar, and bit/varbit to eliminate duplicate code and
thereby reduce the probability of similar inconsistencies arising in
the future.
2001-05-03 19:00:37 +00:00
Tatsuo Ishii
c527366b60 Add missing Unicode support for Cyrillic encodings.
Patches contributed by Victor Wagner.
2001-04-29 07:27:38 +00:00
Tom Lane
2adff4b20e Remove bogus Assert from AbsoluteTimeIsBefore(). (If you don't think
it's bogus, try building a btree index on the regress tests' abstime_tbl.)
2001-04-26 21:52:17 +00:00
Tom Lane
8407bb3c72 Remove useless setuid() call, instead add a check that real and effective
userids are the same.  Per today's pghackers discussion.
2001-04-21 18:29:29 +00:00
Peter Eisentraut
7ff8d11065 Fix "off by VARHDRSZ" bug in (Cyrillic) recode support. 2001-04-19 19:01:23 +00:00
Tatsuo Ishii
b9be04e63d Add a crash gurard to pg_encoding_mblen in case of an invalid encoding
given.
2001-04-19 02:34:35 +00:00
Tom Lane
40136f4465 Make rule lister do the right thing with Vars representing whole tuples. 2001-04-18 17:04:24 +00:00
Tatsuo Ishii
722f7efdd9 Correction for mathematical properties in Unicode converison maps.
Patches contributed by Eiji Tokuya (e-tokuya@sankyo-unyu.co.jp)
2001-04-16 06:10:19 +00:00
Tom Lane
fbee97664e getdatabaseencoding() and PG_encoding_to_char() were being sloppy about
converting char* strings to type 'name'.  Imagine my surprise when 7.1
release coredumped upon start when compiled --enable-multibyte ...
2001-04-16 02:42:01 +00:00
Tom Lane
ffbeafb19a Constant expressions that appear in ORDER BY, GROUP BY, DISTINCT ON
lists should be reverse-compiled into targetlist index numbers, because
that's the only interpretation the parser allows for a constant in these
clauses.  (Ergo, the only way they could have gotten into the list in
the first place is to have come from the targetlist; so this should always
work.)  Per problem report from Peter E.
2001-04-15 03:14:18 +00:00
Tom Lane
83c94a886c Another try at making numeric MODULO operator produce the right answer.
Although it was now using the right equation, it was making bogus choices
of the precision to compute intermediate results to.  I'm not sure this
is really right even yet, but it's better than before ...
2001-04-14 02:10:57 +00:00
Tom Lane
1c68f27877 Correct bogus mktime() calls. 2001-04-03 18:05:53 +00:00
Tom Lane
503c80d2a0 Restore pre-7.1 behavior of allowing DROP of a table whose underlying
physical file has disappeared.  There is no really good reason why
relcache should be opening the underlying file at all, AFAICS.
In any case we needn't raise a hard error here.
2001-04-02 23:30:04 +00:00
Tom Lane
ccd415c63f Fix unportable assumptions about alignment of local char[n] variables. 2001-03-25 23:23:59 +00:00