Обсуждение: INDEX_MAX_KEYS too small, need 36 parameters
============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================
Your name : Hans Schou
Your email address : chlor@schou.dk
System Configuration
---------------------
Architecture (example: Intel Pentium) : Intel Pentium
Operating System (example: Linux 2.4.18) : Linux 2.4.19-36mdk
PostgreSQL version (example: PostgreSQL-7.4.3): PostgreSQL-7.4.3
Compiler used (example: gcc 2.95.2) : gcc 3.2
Please enter a FULL description of your problem:
------------------------------------------------
I needed to have 36 function parameters.
PostgreSQL only allows 32.
Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------
create function addhit(
text,text,text,text,text,
text,text,text,text,text,
text,text,text,text,text,
text,text,text,text,text,
text,text,text,text,text,
text,text,text,text,text,
text,text,text,text,text,
text
) returns int4 as '
.....
If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------
--- src/include/pg_config_manual.h.orig 2004-07-24 22:13:53.000000000 +0200
+++ src/include/pg_config_manual.h 2004-07-24 22:14:02.000000000 +0200
@@ -53,7 +53,7 @@
*
* Changing these requires an initdb.
*/
-#define INDEX_MAX_KEYS 32
+#define INDEX_MAX_KEYS 64
#define FUNC_MAX_ARGS INDEX_MAX_KEYS
/*
--
Hamletsgade 4 - 201, DK-2200 København N, Phone: +45 3582 9079
Schou Industries ApS http://schou.dk/ CVR: 26 13 44 39
--------------------------------------------------------------
"Why would you hand...our IP to America gift-wrapped, without
any return?" -- Andrew Tridgell, software patents
Hans Schou wrote: > I needed to have 36 function parameters. > PostgreSQL only allows 32. If you index more than three or four columns you're doing something wrong. Please explain in more detail why a practical application would need that many index columns. -- Peter Eisentraut http://developer.postgresql.org/~petere/
On Fri, 30 Jul 2004, Peter Eisentraut wrote: > Hans Schou wrote: > > I needed to have 36 function parameters. > > PostgreSQL only allows 32. > > If you index more than three or four columns you're doing something > wrong. Could be. > Please explain in more detail why a practical application would need > that many index columns. I'm taking log-file data from a web-server. First I cut and split the data with a perl script and I send the data to another machine via the network. To reduce the traffic I have a stored procedure which get the splitted data. The stored procedure then does a look-up/create in the reference tables and stores one record which only contain references to other tables. Currently I have used 31 parameters for the most important stuff, and the last parameter is a text-type which I split inside PLPgsql. You could say that I then only need one parameter to do it all, but that would use much more CPU time on the server than it does now (I guess). My system lay-out: Apache -> log-file tail -f log-file | log2sql.pl | psql -h othermachine 'psql' use a lot of CPU time so I might use perl-DBI one day. /hans -- Hamletsgade 4 - 201, DK-2200 København N, Phone: +45 3582 9079 Schou Industries ApS http://schou.dk/ CVR: 26 13 44 39 -------------------------------------------------------------- Hint of the day, http://www.w3.org/QA/Tips/iso-date "Use international date format"