1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-13 16:22:44 +03:00
Commit Graph

3228 Commits

Author SHA1 Message Date
Peter Eisentraut
c7558b3bae Relaxed pickiness about user and group commands in transaction blocks. 2000-06-25 14:24:59 +00:00
Peter Eisentraut
c446509565 Second pass over run-time configuration system. Adjust priorities on some
option settings. Sort out SIGHUP vs BACKEND -- there is no total ordering
here, so make explicit checks. Add comments explaining all of this.
Removed permissions check on SHOW command.

Add examine_subclass to the game, rename to SQL_inheritance to fit the
official data model better. Adjust documentation.

Standalone backend needs to reset all options before it starts. To
facilitate that, have IsUnderPostmaster be set by the postmaster itself,
don't wait for the magic -p switch.

Also make sure that all environment variables and argv's survive
init_ps_display(). Use strdup where necessary.

Have initdb make configuration files (postgresql.conf, pg_hba.conf) mode
0600 -- having configuration files is no fun if you can't edit them.
2000-06-22 22:31:24 +00:00
Tom Lane
9f1a223046 Make renaming a temp table behave sensibly. We don't need to touch
the underlying table at all, just change the mapping entry ... but
that logic was missing.
2000-06-20 06:41:13 +00:00
Tom Lane
38db5fab29 Make inheritance planning logic a little simpler and clearer,
hopefully even a little faster.
2000-06-20 04:22:21 +00:00
Tom Lane
996659f255 Fix handling of type tuple associated with a temp relation. We have
to apply the tempname->realname mapping to type name lookup as well
as relation name lookup, else the type tuple will not be found when
wanted.  This fixes bugs like this one:
create temp table foo (f1 int);
select foo.f2 from foo;
ERROR:  Unable to locate type name 'foo' in catalog
2000-06-20 01:41:22 +00:00
Tom Lane
a1dfaef6c6 Modify index-opening code to guarantee that the indexes of a relation
are opened in a consistent order by different backends (I ordered them
by index OID because that's easy, but any other consistent order would
do as well).  This avoids potential deadlock for index types that we
acquire exclusive locks on ... ie, rtree.
2000-06-19 23:40:48 +00:00
Tom Lane
1f75cdd5ed Ensure that kernel error code is included in smgr-level error reports.
Tweak mdcreate a little bit so that it returns the right errno.
2000-06-19 23:37:08 +00:00
Tom Lane
c590273fef Clean up bogosities in pg_opclass, pg_amop, pg_amproc. There are amproc
entries now for int8 and network hash indexes.  int24_ops and int42_ops
are gone.  pg_opclass no longer contains multiple entries claiming to be
the default opclass for the same datatype.  opr_sanity regress test
extended to catch errors like these in the future.
2000-06-19 03:55:01 +00:00
Tom Lane
1ee26b7764 Reimplement nodeMaterial to use a temporary BufFile (or even memory, if the
materialized tupleset is small enough) instead of a temporary relation.
This was something I was thinking of doing anyway for performance, and Jan
says he needs it for TOAST because he doesn't want to cope with toasting
noname relations.  With this change, the 'noname table' support in heap.c
is dead code, and I have accordingly removed it.  Also clean up 'noname'
plan handling in planner --- nonames are either sort or materialize plans,
and it seems less confusing to handle them separately under those names.
2000-06-18 22:44:35 +00:00
Tom Lane
b4e906f191 Reinstate BufFileTell(). 2000-06-18 03:11:40 +00:00
Tom Lane
edf0b5f0db Get rid of IndexIsUniqueNoCache() kluge by the simple expedient of
passing the index-is-unique flag to index build routines (duh! ...
why wasn't it done this way to begin with?).  Aside from eliminating
an eyesore, this should save a few milliseconds in btree index creation
because a full scan of pg_index is not needed any more.
2000-06-17 23:41:51 +00:00
Tom Lane
d03a933ec5 Fix performance problems with pg_index lookups (see, for example,
discussion of 5/19/00).  pg_index is now searched for indexes of a
relation using an indexscan.  Moreover, this is done once and cached
in the relcache entry for the relation, in the form of a list of OIDs
for the indexes.  This list is used by the parser and executor to drive
lookups in the pg_index syscache when they want to know the properties
of the indexes.  Net result: index information will be fully cached
for repetitive operations such as inserts.
2000-06-17 21:49:04 +00:00
Tom Lane
9cf80f2f55 Clean out another pocket of functions called via nonspecific function
pointers, namely the catcache tuple fetch routines.  Also get rid of
the unused and possibly confusing 'size' field in struct cachedesc.
Since it doesn't allow for variable-length fields, anyone who
actually trusted it would likely be making a mistake...
2000-06-17 04:56:39 +00:00
Peter Eisentraut
1652d43358 Remove fmgrstamp-h business -- not needed and confusing
Add options to configure to automatically build for Kerberos
support; no more editing of make files.
2000-06-17 00:10:40 +00:00
Tom Lane
648029ec2e Repair unforgivably brain-dead representation of CaseExpr nodes in
stored rules.  Bump catversion to reflect incompatibility.
2000-06-16 05:27:03 +00:00
Tom Lane
a62d8393ef Repair Large Object bugs demonstrated by Ian Grant's example. inv_write
was inappropriately relying on rel->rd_nblocks to tell if the LO is
empty (apparently a hack to get around a long-dead index bug), causing
misbehavior on a written-but-never-vacuumed LO.  Also, inv_read failed
to cope gracefully with 'holes' (unwritten regions) in the object.
2000-06-15 06:07:34 +00:00
Bruce Momjian
946e80c435 Final #include cleanup. 2000-06-15 04:10:30 +00:00
Bruce Momjian
df43800fc8 Clean up #include's. 2000-06-15 03:33:12 +00:00
Bruce Momjian
7fe8722295 Add () around define -1. 2000-06-14 18:59:42 +00:00
Peter Eisentraut
44d1abebb4 Big warnings cleanup for Solaris/GCC. Down to about 40 now, but
we'll get there one day.

Use `cat' to create aclocal.m4, not `aclocal'. Some people don't
have automake installed.

Only run the autoconf rule in the top-level GNUmakefile if the
invoker specified `make configure', don't run it automatically
because of CVS timestamp skew.
2000-06-14 18:18:01 +00:00
Tom Lane
ff7b9f5541 I had overlooked the fact that some fmgr-callable functions return void
--- ie, they're only called for side-effects.  Add a PG_RETURN_VOID()
macro and use it where appropriate.  This probably doesn't change the
machine code by a single bit ... it's just for documentation.
2000-06-14 05:24:50 +00:00
Bruce Momjian
69cd08d9f7 Fix for memory leak from Denis Perchine 2000-06-14 04:53:44 +00:00
Bruce Momjian
a194574dde > If read or write fails. Position will left the same. This
> situation is already tracked in File routines, but a little bit
> incorrectly.

> After small survey in Linux kernel code, I am not sure about
> it.  New patch set pos to unknown in the case of read/write
> fails. And do lseek again.

> Here is the full patch for this. This patch reduce amount of
> lseek call ten ti mes for update statement and twenty times for
> select statement. I tested joined up date and count(*) select
> for table with rows > 170000 and 10 indices.  I think this is
> worse of trying. Before lseek calls account for more than 5% o
> f time.  Now they are 0.89 and 0.15 respectevly.
>
> Due to only one file modification patch should be applied in
> src/backedn/stora ge/file/ dir.

-- Sincerely Yours,
Denis Perchine
2000-06-14 03:19:24 +00:00
Tom Lane
f2d1205322 Another batch of fmgr updates. I think I have gotten all old-style
functions that take pass-by-value datatypes.  Should be ready for
port testing ...
2000-06-13 07:35:40 +00:00
Bruce Momjian
332f0f5fc0 Rename rule CURRENT to OLD in source tree. Add mapping for backward
compatiblity with old rules.
2000-06-12 19:40:58 +00:00
Bruce Momjian
3357e1d29e Back out pg_shadow changes to allow create table and locking permissions. 2000-06-12 03:41:03 +00:00
Tom Lane
3477957b44 Update sequence-related functions to new fmgr style. Remove downcasing,
quote-stripping, and acl-checking tasks for these functions from the
parser, and do them at function execution time instead.  This fixes
the failure of pg_dump to produce correct output for nextval(Foo)
used in a rule, and also eliminates the restriction that the argument
of these functions must be a parse-time constant.
2000-06-11 20:08:01 +00:00
Peter Eisentraut
06cd0f1a32 Substituted new configure test for types of accept()
Interfaced a lot of the custom tests to the config.cache, in the process
made them separate macros and grouped them out into files. Made naming
adjustments.

Removed a couple of useless/unused configure tests.

Disabled C++ by default. C++ is no more special than Perl, Python, and Tcl.
And it breaks equally often. :(
2000-06-11 11:40:09 +00:00
Tom Lane
936900074d Update rule dumper for the brave new world of ONLY. 2000-06-10 05:17:23 +00:00
Tom Lane
6bdbd41f2d nodeAppend tried to deal with multiple result relations, but apparently it never
really worked.  Until now.
2000-06-10 05:16:38 +00:00
Bruce Momjian
85add42a57 I have large database and with this DB work more users and I very need
more restriction for fretful users. The current PG allow define only
NO-CREATE-DB and NO-CREATE-USER restriction, but for some users I need
NO-CREATE-TABLE and NO-LOCK-TABLE.

This patch add to current code NOCREATETABLE and NOLOCKTABLE feature:

CREATE USER username
    [ WITH
     [ SYSID uid ]
     [ PASSWORD 'password' ] ]
    [ CREATEDB   | NOCREATEDB ] [ CREATEUSER | NOCREATEUSER ]
->  [ CREATETABLE | NOCREATETABLE ] [ LOCKTABLE | NOLOCKTABLE ]
    ...etc.

 If CREATETABLE or LOCKTABLE is not specific in CREATE USER command,
as default is set CREATETABLE or LOCKTABLE (true).

 A user with NOCREATETABLE restriction can't call CREATE TABLE or
SELECT INTO commands, only create temp table is allow for him.

                                                Karel
2000-06-09 15:51:02 +00:00
Bruce Momjian
dbf2fd2e0f The enclosed patch changes the behaviour of the "ordinal" ('TH') format for
to_char.  I don't know about the rest of the world, but the "standard" in
Australia is the following:

        1st, 2nd, 3rd, 4th - 9th
        10th - 19th
        21st, 22nd, 23rd, 24th - 29th (similarly for 30s - 90s)
        110th - 119th (and for all "teens")
        121st, 122nd, 123rd, 124th - 129th

I think you see the trend.  The current code works fine except that it
produces:

        111st, 112nd, 113rd, 114th - 119th
        211st, 212nd, 213rd, 214th - 219th ... and so on.

Without knowing anything about what's supported (and what isn't) in the usual
I18N libraries, should this type of behaviour be defined within the locales?

Daniel Baldoni
2000-06-09 03:18:34 +00:00
Tom Lane
ce7746201b Cause inheritance patch to meet minimum coding standards (no gcc
warnings).
2000-06-09 03:17:13 +00:00
Tom Lane
7fca3f0379 Cleanup to ensure good state of derived files in tarballs. 2000-06-09 02:38:36 +00:00
Bruce Momjian
8c1d09d591 Inheritance overhaul by Chris Bitmead <chris@bitmead.com> 2000-06-09 01:44:34 +00:00
Tom Lane
ae526b4070 Another round of updates for new fmgr, mostly in the datetime code. 2000-06-09 01:11:16 +00:00
Bruce Momjian
20ad43b576 Mark functions as static and ifdef NOT_USED as appropriate. 2000-06-08 22:38:00 +00:00
Bruce Momjian
5690933d6c Mark ImmediateSharedRelationCacheInvalidate as NOT_USED. 2000-06-08 19:51:06 +00:00
Peter Eisentraut
e3059fc0f5 Gen_fmgrtab.sh is strange: it is a platform dependent way (because it uses
CPP) to create platform independent files. Unfortunately, that means that
every config.status (or configure) run invariably causes a relink of the
postmaster and also that we can't put these files in the distribution
(usefully). So we make it a little smarter: when the output files already
exist and it notices that it would recreate them in identical form, it
doesn't touch them. In order to avoid re-running the make rule all the time
we update a timestamp file instead.

Update release_prep accordingly. Also make Gen_fmgrtab.sh use the awk that
is detected at configure time, not necessarily named `awk' and have it check
for exit statuses a little better.

In other news... Remove USE_LOCALE from the templates, it was set to `no'
everywhere anyway. Also remove YACC and YFLAGS from the templates, configure
is smart enough to find bison or yacc itself. Use AC_PROG_YACC for that
instead of the hand-crafted code. Do not set YFLAGS to `-d'. The make rules
that need this flag should explicitly invoke it. YFLAGS should be a user
variable. Update the makefiles to that effect.
2000-06-07 16:27:00 +00:00
Bruce Momjian
7d301947e5 Re-order pg_listener index so it can later be used in an index scan. 2000-06-07 04:09:44 +00:00
Bruce Momjian
4bd5006812 Add index on pg_index.indrelid for Tom Lane. 2000-06-07 02:44:40 +00:00
Tom Lane
42ad25fcd1 init_fcache was being careless about using SearchSysCacheTuple result
over multiple lookups --- it should use SearchSysCacheTupleCopy instead.
This accounts for rare failures like 'init_fcache: null probin for procedure 481'
when running concurrently with a VACUUM.
2000-06-06 17:44:25 +00:00
Tom Lane
e57e991e80 Improve comments for SearchSysCacheTuple and SearchSysCacheTupleCopy. 2000-06-06 17:02:38 +00:00
Tom Lane
05cd91a582 typeTypeName() must return a pstrdup'd copy of the type name, not a
direct pointer into the syscache entry for the type.  In some cases
the syscache entry might get flushed before we are done using the
returned type name.  This bug accounts for difficult-to-repeat
failures seen when INSERTs into columns of certain data types are
run in parallel with VACUUMs of system tables.  There may be related
problems elsewhere --- we need to take a harder look at uses of
syscache data.
2000-06-06 16:50:37 +00:00
Peter Eisentraut
4032a515d2 PGPORT envar was erroneously ignored by the backend 2000-06-06 16:04:32 +00:00
Bruce Momjian
552d59353f Update for 7.0.2. 2000-06-05 17:07:56 +00:00
Tom Lane
48165ec226 Latest round of fmgr updates. All functions with bool,char, or int2
inputs have been converted to newstyle.  This should go a long way towards
fixing our portability problems with platforms where char and short
parameters are passed differently from int-width parameters.  Still
more to do for the Alpha port however.
2000-06-05 07:29:25 +00:00
Tom Lane
c61db5ba2d Simplify build/install process for bki and description files. There's
no reason for them to be copied into src/backend rather than being
installed straight from the catalog subdirectory.  This also avoids
some peculiar behavior (bugs?) present in at least gmake 3.78.1: it
won't always update the bki files in backend/ even when the ones in
backend/catalog/ are newer.
2000-06-05 07:16:13 +00:00
Tom Lane
4863829c12 If user re-DECLAREs an existing cursor name, close the old cursor of
that name and issue a NOTICE to the effect that we did.  Previously,
code would try to assign the new cursor declaration to the old portal,
but this didn't work reliably since new parsetree is still sitting in
blank portal and is likely to get clobbered.
2000-06-04 22:08:53 +00:00
Tom Lane
9b5410aa03 Disallow CLOSE of reserved system portal names. 2000-06-04 22:04:32 +00:00