Bruce Momjian [Mon, 15 Mar 1999 00:34:53 +0000 (00:34 +0000)]
Hi All,
I've changed the check_primary_key() function code to allow for either
the "automatic insert key rule" or "dependent insert key rule".
Previously it restricted the addtion of a child entry if the
corresponding parent entry was not there. Now if the option is
"automatic" it will add an entry in the parent too ( it will be
successful if there are no no-null fields in the parent apart from the
primary key).
The way to use it now is:
:/*
* check_primary_key () -- check that key in tuple being
inserted/updated
* references existing tuple in "primary" table.
* Though it's called without args You have to specify referenced
* table/keys while creating trigger: key field names in triggered
table,
* referenced table name, referenced key field names,type of action
[automatic|dependent]:
* EXECUTE PROCEDURE
* check_primary_key ('Fkey1', 'Fkey2', 'Ptable', 'Pkey1', 'Pkey2',
'[automatic|dependent]').
*/
I am attaching the new ../contrib/spi/refint.c file which will do this.
I will be glad to help in case of any problems.
Bruce Momjian [Sun, 14 Mar 1999 16:46:21 +0000 (16:46 +0000)]
This is another example of why not allowing utility functions in SPI
would be a Bad Thing.
For what it's worth, I found another case in libpq where you can get a T
message without a D that my utility patch needs to handle. I have
attached
the updated patch against the 6.4.2 version of
src/interfaces/libpq/fe-exec.c
Bruce Momjian [Sun, 14 Mar 1999 16:44:02 +0000 (16:44 +0000)]
Attempting to insert a value of 'now' into a datetime type
results in a bogus datetime value under AlphaLinux. (Note that
the link to submit a port-specific bug on your website is broken)
Solution:
---------
The basic problem is the typedefs of AbsoluteTime and RelativeTime,
which are both 'int32'. These types appear to be used synonymously
with the 'time_t' type, which on AlphaLinux is typedef'd as a 'long
int', which is 64-bits (not 32). The solution included here fixes
the datetime type (it now passes the regression test), but does not
pass the absolute and relative time regression tests. Presumably, a
more thorough investigation of how these types are used is warranted.
The included patch is from the v6.3.2 source, but can be applied to
the v6.4.2 source. Please note that there is also a RedHat-specific
patch distributed with the PostgreSQL source package from RedHat
that was applied first.
Bruce Momjian [Sun, 14 Mar 1999 16:42:15 +0000 (16:42 +0000)]
Hi,
Just in case you'd like to see what I was talking about, I am
attaching
my patch to src/interfaces/libpq/fe-exec.c to prevent utility functions
called from SPI from locking up the client.
Bruce Momjian [Sun, 14 Mar 1999 16:06:43 +0000 (16:06 +0000)]
I've been having also sorts of fun trying to get kerberos 4
authentifica
tion
working with postgresql-6.4.2 and KTH-KRB Ebones
(http://www.pdc.kth.se/kth-kr
b) on a dec alpha running DU 4.0D using the native compiler. The
following
patch does the trick.
The rationale behind this is as follows. The KTH-KRB code header files
defines
lots of lengths like INST_SZ,REALM_SZ and KRB_SENDAUTH_VLEN. It also has
a
habit of doing things like
chararray[LENGTH] = '\0'
to ensure null terminated strings. In my instance this just happens to
blat
the kerberos principal instance string leading to error like
The application code that comes with KTH-KRB uses "KRB_SENDAUTH_VLEN +
1" and
sometimes uses "INST_SZ + 1" so it seems safest to put that 1 char
buffer in
the appropriate place.
Bruce Momjian [Sun, 14 Mar 1999 16:03:33 +0000 (16:03 +0000)]
We have tested the patches on three platforms:
NetBSD/macppc
LinuxPPC
FreeBSD 2.2.6-RELEASE
All of them seem happy with the regression test. Note that, however,
compiling with optimization enabled on NetBSD/macppc causes an initdb
failure (other two platforms are ok). After checking the asm code, we
are suspecting that might be a compiler(egcs) bug.
Bruce Momjian [Sun, 14 Mar 1999 16:00:55 +0000 (16:00 +0000)]
This patch improves the destroyuser script's behaviour in checking whether
the user is allowed to detroy users. It also allows for a possible incorrect
empty reply to a yes/no question.
Bruce Momjian [Sun, 14 Mar 1999 15:22:15 +0000 (15:22 +0000)]
Fixup for src/tutorial/func.c and src/tutorial/func.source
Removed char16 and replaced with an example using Point
as suggested by Tom Lane. The dept field was changed to
the cubicle field denoting the row(x) and column(y) of
the employee's cube in the corporate jungle. The C function
builds a 'compromise' cubicle from two suggested ones.
Bruce Momjian [Sun, 14 Mar 1999 05:15:08 +0000 (05:15 +0000)]
I have a problem with Access97 not working properly when entering new
records using a sub form, i.e. entering a new order/orderlines or master
and
detail tables. The problem is caused by a SQL statement that Access97
makes
involving NULL. The syntax that fails is "column_name" = NULL. The
following attachment was provided by -Jose'-. It contains a very small
enhancement to gram.y that will allow Access97 to work properly with sub
forms. Can this enhancement be added to release 6.5?
Bruce Momjian [Sun, 14 Mar 1999 05:12:45 +0000 (05:12 +0000)]
There are errors in the PGmoney class in the conversion routines over
the handling of negative numbers and commas. The attached path attempts
to fix these.
However the getValue method does not yet insert commas into the
generated string.
Also in getValue there is an incorrect assumption that the currency
symbol is '$', it should of course be '£'!. I have no idea on how to go
about fixing this one.
Bruce Momjian [Sun, 14 Mar 1999 05:09:05 +0000 (05:09 +0000)]
Enclosed below I have a patch to allow a btree index on the int8 type.
I would like some feedback on what the hash function for the int8 hash
function
in the ./backend/access/hash/hashfunc.c should return.
Also, could someone (maybe Tomas Lockhart?) look-over the patch and make
sure
the system table entries are correct? I've tried to research them as
much as I
could, but some of them are still not clear to me.
Vadim B. Mikheev [Wed, 10 Mar 1999 12:16:09 +0000 (12:16 +0000)]
We have to return dummy tuple for empty targetlist!
Try select t1.x from t1, t2 where t1.y = 1 and t2.y = 1
- t2 scan target list will be empty and so no one tuple
will be returned...
Tom Lane [Wed, 10 Mar 1999 05:05:58 +0000 (05:05 +0000)]
Make type 'regproc' binary-compatible with int4 and oid,
so that it has some SQL operators available. It's difficult to write
automated tests of a data type that you haven't even got == for...
Tom Lane [Wed, 10 Mar 1999 05:02:34 +0000 (05:02 +0000)]
Fix some typos in argument and result types in pg_proc
and pg_operator. The lone error in pg_operator was reported as a bug
by Michael Reifenberger; the multiple errors in pg_proc would only have
been noticed if one invoked the functions by name rather than using
operator syntax. I guess few people do that.
Have configure check for use of %lld for int64, and if that fails, check for
use of %qd...a more generic solution then having #ifdef __<INSERT OS HERE>__
in the code...
Tom Lane [Sun, 7 Mar 1999 23:05:57 +0000 (23:05 +0000)]
Export include/utils/mcxt.h so that external stuff can include
palloc.h again. Move exporting of backend header files out of libpq's
Makefile (whatever was it doing there in the first place?) and into
backend/Makefile.
Tom Lane [Sat, 6 Mar 1999 21:17:56 +0000 (21:17 +0000)]
A few further tweaks to shared memory space estimation.
This change brings the default size of the main shmem block back under 1MB,
which is a fairly popular value for the kernel's SHMMAX parameter.
Tom Lane [Wed, 3 Mar 1999 00:02:42 +0000 (00:02 +0000)]
Partial fix for copied-plan bugs reported by Hiroshi Inoue:
_copyResult didn't copy subPlan structure completely. _copyAgg is still
busted, apparently because of changes from EXCEPT/INTERSECT patch
(get_agg_tlist_references is no longer sufficient to find all aggregates).
No time to look at that tonight, however.
Tom Lane [Mon, 1 Mar 1999 00:10:44 +0000 (00:10 +0000)]
Executor no longer cares about mergejoinop, mergerightorder, mergeleftorder,
so remove them from MergeJoin node. Hack together a partial
solution for commuted mergejoin operators --- yesterday
a mergejoin int4 = int8 would crash if the planner decided to
commute it, today it works. The planner's representation of
mergejoins really needs a rewrite though.
Also, further testing of mergejoin ops in opr_sanity regress test.
Marc G. Fournier [Sun, 28 Feb 1999 07:25:34 +0000 (07:25 +0000)]
From: Michael Meskes <Michael_Meskes@topmail.de>
+
+ Tue Feb 23 17:32:25 CET 1999
+
+ - Other than a struct a union itself cannot be specified as variable.
+
+ Fri Feb 26 07:18:25 CET 1999
+
+ - Synced preproc.y with gram.y.
+
+ Sat Feb 27 20:30:03 CET 1999
+
+ - Added automatic allocating for NULL pointers.
Tom Lane [Sun, 28 Feb 1999 00:56:42 +0000 (00:56 +0000)]
Fix pg_operator entries for mergejoinable operators with different left and
right side data types. Correct the opr_sanity regress test to check these
entries properly. NOTE that opr_sanity will now fail until you do an initdb!
Bruce Momjian [Wed, 24 Feb 1999 03:17:05 +0000 (03:17 +0000)]
Thank you for the advice. I concluded that current inet code has a
portability problem. Included patches should be applied to both
current and 6.4 tree. I have tested on LinuxPPC, FreeBSD and Solaris
2.6. Now the inet regression tests on these platforms are all happy.
---
Tatsuo Ishii
Marc G. Fournier [Tue, 23 Feb 1999 12:57:03 +0000 (12:57 +0000)]
From: Michael Meskes <Michael_Meskes@topmail.de>
+
+ Son Feb 21 14:10:47 CET 1999
+
+ - Fixed variable detection in libecpg.
+
+ Mon Feb 22 19:47:45 CET 1999
+
+ - Added 'at <db_connection>' option to all commands it is apllicable
+ to. Due to changing the API of some libecpg functions this
+ requires me to increase the major version number.
+ - Synced pgc.l with scan.l.
+ - Added support for unions.
+ - Set library version to 3.0.0
+ - Set ecpg version to 3.0.0
Include some new code for outer joins. Disabled by default, but enable by
including the following in your Makefile.custom:
CFLAGS+= -DENABLE_OUTER_JOINS -DEXEC_MERGEJOINDEBUG
Put in explicit checks for implicit index name lengths.
Put in hooks for outer joins by passing a few parameters back and forth
in function calls. May not be close to working yet.
Bring debugging print statement declarations up to date.
Comment-out the #undef default declarations to allow the parameters to be
set on the compiler command line.
Rearrange order of subdirectory creation to help generate parse.h
file early enough to use in nodes/.
Try to be more complete for rules on generating parse.h,
but it still does not work any better than before. Should be able to
make correctly if parser/gram.y is updated even without a "make clean"
but so far not there yet.
Bruce Momjian [Mon, 22 Feb 1999 16:46:43 +0000 (16:46 +0000)]
Ok. I found an align problem in lobj that might not appear other than
Solaris/sparc. Please apply included patches to
src/backend/storage/large_object/inv_api.c and try again. (These are
Tom Lane [Mon, 22 Feb 1999 06:16:57 +0000 (06:16 +0000)]
Repair some pretty serious problems in dynahash.c and
shared memory space allocation. It's a wonder we have not seen bug
reports traceable to this area ... it's quite clear that the routine
dir_realloc() has never worked correctly, for example.
Marc G. Fournier [Sun, 21 Feb 1999 03:49:55 +0000 (03:49 +0000)]
From: Tatsuo Ishii <t-ishii@sra.co.jp>
Ok. I made patches replacing all of "#if FALSE" or "#if 0" to "#ifdef
NOT_USED" for current. I have tested these patches in that the
postgres binaries are identical.
Marc G. Fournier [Sun, 21 Feb 1999 03:02:35 +0000 (03:02 +0000)]
From: Michael Meskes <Michael_Meskes@topmail.de>
+
+ Fri Feb 19 21:40:14 CET 1999
+
+ - Fixed bug in libecpg that caused it to start transactions only for
+ the first connection.
+ - Set library version to 2.7.1
Tom Lane [Sun, 21 Feb 1999 01:41:55 +0000 (01:41 +0000)]
Rearrange handling of MAXBACKENDS a little bit. The default setting
of MAXBACKENDS is now 1024, since all it's costing is about 32 bytes of memory
per array slot. configure's --with-maxbackends switch now controls DEF_MAXBACKENDS
which is simply the default value of the postmaster's -N switch. Thus,
the out-of-the-box configuration will still limit you to 64 backends,
but you can go up to 1024 backends simply by restarting the postmaster with
a different -N switch --- no rebuild required.
Tom Lane [Fri, 19 Feb 1999 06:06:39 +0000 (06:06 +0000)]
Allow maximum number of backends to be set at configure time
(--with-maxbackends). Add a postmaster switch (-N backends) that allows
the limit to be reduced at postmaster start time. (You can't increase it,
sorry to say, because there are still some fixed-size arrays.)
Grab the number of semaphores indicated by min(MAXBACKENDS, -N) at
postmaster startup, so that this particular form of bogus configuration
is exposed immediately rather than under heavy load.