Re: [PATCHES] [BUGS] BUG #2977: dow doesn't conform to ISO-8601

2007-02-21 Thread Adriaan van Os

Bruce Momjian wrote:

Updated version applied.  I reduced the numering changes for the macros.

There was also documentation text for "dow" and a few others that said
"(for timestamp values only)", but in fact the field worked
for "timestamptz" and "date" too, so I removed the mentions.  If people
get confused, I will come up with new wording, like "doesn't work for
interval or time", which I think is pretty obvious.  I remember people
got confused in the past about this, so maybe we still need something.

---

Bruce Momjian wrote:

I have implemented 'isodow' with the attached patch.


Thanks for the patch and the new function.

Adriaan van Os

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [PATCHES] [pgsql-patches] Patch to avoid gprofprofilingoverwrites

2007-02-21 Thread Bruce Momjian

Applied.

---

Bruce Momjian wrote:
> Tom Lane wrote:
> > Bruce Momjian <[EMAIL PROTECTED]> writes:
> > 
> > > + CFLAGS="$CFLAGS -DPROFILE_PID_DIR -pg ${PROFILE_CFLAGS}"
> > 
> > Kindly use AC_DEFINE instead of random -D in CFLAGS (which is the wrong
> > place for -D anyway).  Also, what exactly is the point here of
> > PROFILE_CFLAGS?  I thought it was supposed to allow substituting
> > something else for -pg, but you've managed to defeat that.
> 
> I can't see the value in having a profile flag that just adds an
> environment variable.  I am hoping other compilers will supply the flags
> they need and we can expand this.
> 
> > > + snprintf(gprofDirName, MAXPGPATH, "./gprof/%d", 
> > > getpid());
> > 
> > getpid is not int everywhere; use a cast.  Also, the "./" bits are
> > silly, and if you ask me so is the MAXPGPATH-sized buffer for a string
> > that can't exceed 20 or so bytes.
> 
> Patch updated and attached.
> 
> -- 
>   Bruce Momjian  <[EMAIL PROTECTED]>  http://momjian.us
>   EnterpriseDB   http://www.enterprisedb.com
> 
>   + If your life is a hard drive, Christ can be your backup. +


> 
> ---(end of broadcast)---
> TIP 5: don't forget to increase your free space map settings

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>  http://momjian.us
  EnterpriseDB   http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [PATCHES] [pgsql-patches] Patch to avoidgprofprofilingoverwrites

2007-02-21 Thread korryd
> Applied.


Thanks for your help Bruce (and Tom and Nikhil).


-- Korry


Re: [PATCHES] Enums patch v2

2007-02-21 Thread Bruce Momjian

I am putting this in the patches queue so it is not lost.  I believe
Neil is working applying this.

Your patch has been added to the PostgreSQL unapplied patches list at:

http://momjian.postgresql.org/cgi-bin/pgpatches

It will be applied as soon as one of the PostgreSQL committers reviews
and approves it.

---


Tom Dunstan wrote:
> Neil Conway wrote:
> > On Thu, 2007-02-01 at 22:50 -0500, Bruce Momjian wrote:
> >> Where are we on this?
> > 
> > I can commit to reviewing this. The patch looked fairly solid on a quick
> > glance through, but I won't have the cycles to review it properly for a
> > week or two.
> 
> I've brought this up to date with the operator family stuff now, and the 
> attached patch once more applies cleanly against HEAD. Hopefully that'll 
> make life a little easier when reviewing it. Thanks.
> 
> I got sick of manually shifting the new OID values every time someone 
> had added something new to the catalogs, so I moved all of my OIDs up to 
> the 9000 range. Attached is a hacky bash script which can move them back 
> to something sane. The idea is to run unused_oids first, see where the 
> main block of unused OIDs starts, and then run shift_oids on the 
> (unzipped) patch file before applying the patch. We discussed something 
> similar a while ago, but no-one ever got around to implementing the script.
> 
> I've attached the script and left the OIDs in my patch in the upper 
> range rather than just running it myself before submitting the patch as 
> I reckon that this might be a useful convention for authors of patches 
> which add a non-trivial number of OIDs to the catalogs. If there's 
> agreement then anyone can feel free to commit the script to CVS or put 
> it on the wiki or whatever.
> 
> Cheers
> 
> Tom

[ application/x-gzip is not supported, skipping... ]

> #!/bin/sh
> 
> start=$1
> end=$2
> new_start=$3
> filename=$4
> 
> if [ -z "$filename" ] ; then
>   echo Usage: $0 start-oid end-oid new-start-oid filename
>   exit 1
> fi
> 
> if [ ! -f $filename ] ; then
>   echo $0: $filename is not a file
>   exit 1
> fi
> 
> if [ $end -le $start ] ; then
>   echo $0: End of OID range must be greater than or equal to the start
>   exit 1
> fi
> 
> start_len=`echo -n $start | wc -c`
> end_len=`echo -n $end | wc -c`
> 
> if [ $start_len -ne 4 -o $end_len -ne 4 ] ; then
>   echo $0: Source OID range must have 4 digits
>   exit 1
> fi
> 
> let new_end=$new_start+$end-$start
> if [ $start -le $new_start -a $end -ge $new_start -o $new_start -le $start -a 
> $new_end -ge $start ] ; then
>   echo $0: OID ranges may not overlap
>   exit 1
> fi
> 
> 
> i=$start
> j=$new_start
> while [ $i -le $end ] ; do
>   #echo $i $j
>   sed -i "s/$i/$j/g" $filename
>   let i=i+1
>   let j=j+1
> done

> 
> ---(end of broadcast)---
> TIP 5: don't forget to increase your free space map settings

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>  http://momjian.us
  EnterpriseDB   http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [PATCHES] [HACKERS] HOT WIP Patch - version 2

2007-02-21 Thread Simon Riggs
On Tue, 2007-02-20 at 09:48 +0200, Hannu Krosing wrote:

> I'm not sure about the "we are more concerned about the large tables"
> part. I see it more as a device for high-update tables. This may not
> always be the same as "large", so there should be some fallbacks for
> case where you can't get the lock. Maybe just give up and move to
> another page ?

Every design favours one or other of the various use cases.

The worst performance is caused by large tables with random updates,
because that causes substantially more I/O than a smaller table.

A table with substantially more updaters than rows will be unlikely to
ever yield a vacuum-level lock on the block, so the table will
inevitably grow. But because its fairly small, it won't grow that much
before an autovacuum is triggered to clean it up. The index entries will
still be minimised in this case.

The case of a small number of rows being very heavily updated in an
otherwise very large table will not be well optimised by this simplified
version of HOT. However, that case can still benefit from a Dead Space
Map approach. In view of other work on DSM it was felt that simplifying
HOT was the right thing to do. So DSM is still required.

If no other DSM approaches happen, it should be possible to implement an
80/20 version of DSM by simply running a VACUUM using the current FSM
implementation as the input blockids. In many cases that will yield a
good proportion of the benefits of a full VACUUM. I hope that will be
agreed if there isn't any other agreement on a full DSM solution; it
would be a pity to ignore such a low complexity solution.

Note also that Alvaro's multi-vacuum solution will also be required to
allow VACUUMs to be effective against heavily updated, yet smaller
tables.

So the comment about "more concerned with large tables" is really a
trade-off to allow a simpler solution, yet in an area that minimises the
performance disadvantages.

-- 
  Simon Riggs 
  EnterpriseDB   http://www.enterprisedb.com



---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faq


Re: [PATCHES] [HACKERS] Dead code in _bt_split?

2007-02-21 Thread Bruce Momjian

Patch applied.  Thanks.

---


Heikki Linnakangas wrote:
> Tom Lane wrote:
> > While testing it I realized that there seems to be a nearby bug in
> > _bt_findsplitloc: it fails to consider the possibility of moving all the
> > extant items to the left side.  It will always return a firstright <=
> > maxoff.  ISTM this would mean that it could choose a bad split if the
> > incoming item goes at the end and both it and the last extant item are
> > large: in this case they should be split apart, but they won't be.
> > 
> > Heikki, do you feel like looking at that, or shall I?
> 
> I refactored findsplitloc and checksplitloc so that the division of 
> labor is more clear IMO. I pushed all the space calculation inside the 
> loop to checksplitloc.
> 
> I also fixed the off by 4 in free space calculation caused by 
> PageGetFreeSpace subtracting sizeof(ItemIdData), even though it was 
> harmless, because it was distracting and I felt it might come back to 
> bite us in the future if we change the page layout or alignments. 
> There's now a new function PageGetExactFreeSpace that doesn't do the 
> subtraction.
> 
> findsplitloc now tries the "just the new item to right page" split as 
> well. If people don't like the refactoring, I can write a patch to just 
> add that.
> 
> Some of the long variable names look ugly. camelCase or underscores 
> between words would be more readable, but I retained the old style for 
> the sake of consistency.
> 
> -- 
>Heikki Linnakangas
>EnterpriseDB   http://www.enterprisedb.com


> 
> ---(end of broadcast)---
> TIP 4: Have you searched our list archives?
> 
>http://archives.postgresql.org

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>  http://momjian.us
  EnterpriseDB   http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [PATCHES] [previously on HACKERS] "Compacting" a relation

2007-02-21 Thread Bruce Momjian

I applied the optional VACUUM FULL version, but modified to code to say
20% rather than a factor of 5, attached.

---

Simon Riggs wrote:
> On Mon, 2007-02-05 at 11:55 +, Simon Riggs wrote:
> > On Sat, 2007-02-03 at 22:11 -0500, Bruce Momjian wrote:
> > > Tom Lane wrote:
> > > > Peter Eisentraut <[EMAIL PROTECTED]> writes:
> > > > > vacuumlazy.c contains a hint "Consider compacting this relation" but 
> > > > > AFAICT, 
> > > > > there is no indication anywhere how "compacting" is supposed to be 
> > > > > achieved.
> > > > > I guess this means VACUUM FULL or CLUSTER, but I don't think the hint 
> > > > > can be 
> > > > > processed effectively by a user.
> > > > 
> > > > So change it ...
> > > 
> > > New message is:
> > > 
> > >   errhint("Consider using VACUUM FULL on this relation or increasing the 
> > > configuration parameter \"max_fsm_pages\".")));
> > > 
> > 
> > The change of wording may be appropriate, but it is triggered when
> > 
> > if (vacrelstats->tot_free_pages > MaxFSMPages)
> > 
> > So if you VACUUM a 15+GB table and it has only 1% freespace then it will
> > still generate this message. Hopefully you'd agree that the message
> > would be inappropriate in that case.
> > 
> > It's also inappropriate because this message is generated *prior* to
> > doing lazy_truncate_heap(), which could easily remove lots of empty
> > pages anyhow. That might reduce it to less than MaxFSMPages anyhow, so
> > it can currently be triggered in wholly inappropriate situations.
> > 
> > So I suggest that we move this wording after lazy_truncate_heap() in
> > lazy_vacuum_rel() *and* we alter the hint so that it only suggests
> > VACUUM FULL if the table has 20% fragmentation, whatever its size.
> > 
> > Happy to drop a patch for this, if people agree.
> 
> Enclose 2 versions:
> v1 - move test and WARNING
> v2 - move test and WARNING, plus adjust hint according to relation size
> 
> -- 
>   Simon Riggs 
>   EnterpriseDB   http://www.enterprisedb.com
> 

[ Attachment, skipping... ]

[ Attachment, skipping... ]

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>  http://momjian.us
  EnterpriseDB   http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/backend/commands/vacuumlazy.c
===
RCS file: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v
retrieving revision 1.83
diff -c -c -r1.83 vacuumlazy.c
*** src/backend/commands/vacuumlazy.c	4 Feb 2007 03:10:55 -	1.83
--- src/backend/commands/vacuumlazy.c	21 Feb 2007 22:13:59 -
***
*** 180,185 
--- 180,195 
  	/* Update shared free space map with final free space info */
  	lazy_update_fsm(onerel, vacrelstats);
  
+ 	if (vacrelstats->tot_free_pages > MaxFSMPages)
+ 		ereport(WARNING,
+ (errmsg("relation \"%s.%s\" contains more than \"max_fsm_pages\" pages with useful free space",
+ 		get_namespace_name(RelationGetNamespace(onerel)),
+ 		RelationGetRelationName(onerel)),
+  errhint("Consider%sincreasing the configuration parameter \"max_fsm_pages\".",
+ 		/* Only suggest VACUUM FULL if 20% free */
+ 		(vacrelstats->tot_free_pages > vacrelstats->rel_pages * 0.20
+ 			? " using VACUUM FULL on this relation or ": " ";
+ 
  	/* Update statistics in pg_class */
  	vac_update_relstats(RelationGetRelid(onerel),
  		vacrelstats->rel_pages,
***
*** 507,519 
  	   vacrelstats->tot_free_pages,
  	   empty_pages,
  	   pg_rusage_show(&ru0;
- 
- 	if (vacrelstats->tot_free_pages > MaxFSMPages)
- 		ereport(WARNING,
- (errmsg("relation \"%s.%s\" contains more than \"max_fsm_pages\" pages with useful free space",
- 		get_namespace_name(RelationGetNamespace(onerel)),
- 		relname),
-  errhint("Consider using VACUUM FULL on this relation or increasing the configuration parameter \"max_fsm_pages\".")));
  }
  
  
--- 517,522 

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [PATCHES] [previously on HACKERS] "Compacting" a relation

2007-02-21 Thread Alvaro Herrera
Bruce Momjian wrote:
> 
> I applied the optional VACUUM FULL version, but modified to code to say
> 20% rather than a factor of 5, attached.

String construction does not work well with translations; please
reformulate this.

> +  errhint("Consider%sincreasing the 
> configuration parameter \"max_fsm_pages\".",
> + /* Only suggest VACUUM FULL if 
> 20% free */
> + (vacrelstats->tot_free_pages > 
> vacrelstats->rel_pages * 0.20
> + ? " using VACUUM FULL 
> on this relation or ": " ";


-- 
Alvaro Herrerahttp://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [PATCHES] WIP patch - INSERT-able log statements

2007-02-21 Thread daveg
On Thu, Feb 22, 2007 at 11:50:06AM +1100, FAST PostgreSQL wrote:
> - The log output will be in COPY format and will include the following 
> information, irrespective of the log_line_prefix setting.
> ( timestamp_with_milliseconds,  timestamp, username,  databasename, 
> sessionid,  host_and_port, host, proc_id, command_tag,  session_start, 
> transaction_id,  error_severity,  SQL_State_Code, statement/error_message);

Why are there two timestamps?

What about durations? Do they include all this?

Is the statement log written when the statement starts or when it completes?

-dg

-- 
David Gould  [EMAIL PROTECTED]
If simplicity worked, the world would be overrun with insects.

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [PATCHES] [previously on HACKERS] "Compacting" a relation

2007-02-21 Thread Bruce Momjian
Alvaro Herrera wrote:
> Bruce Momjian wrote:
> > 
> > I applied the optional VACUUM FULL version, but modified to code to say
> > 20% rather than a factor of 5, attached.
> 
> String construction does not work well with translations; please
> reformulate this.
> 
> > +errhint("Consider%sincreasing the 
> > configuration parameter \"max_fsm_pages\".",
> > +   /* Only suggest VACUUM FULL if 
> > 20% free */
> > +   (vacrelstats->tot_free_pages > 
> > vacrelstats->rel_pages * 0.20
> > +   ? " using VACUUM FULL 
> > on this relation or ": " ";

OK, updated.

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>  http://momjian.us
  EnterpriseDB   http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/backend/commands/vacuumlazy.c
===
RCS file: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v
retrieving revision 1.84
diff -c -c -r1.84 vacuumlazy.c
*** src/backend/commands/vacuumlazy.c	21 Feb 2007 22:15:21 -	1.84
--- src/backend/commands/vacuumlazy.c	21 Feb 2007 22:41:55 -
***
*** 185,194 
  (errmsg("relation \"%s.%s\" contains more than \"max_fsm_pages\" pages with useful free space",
  		get_namespace_name(RelationGetNamespace(onerel)),
  		RelationGetRelationName(onerel)),
!  errhint("Consider%sincreasing the configuration parameter \"max_fsm_pages\".",
! 		/* Only suggest VACUUM FULL if 20% free */
! 		(vacrelstats->tot_free_pages > vacrelstats->rel_pages * 0.20
! 			? " using VACUUM FULL on this relation or ": " ";
  
  	/* Update statistics in pg_class */
  	vac_update_relstats(RelationGetRelid(onerel),
--- 185,194 
  (errmsg("relation \"%s.%s\" contains more than \"max_fsm_pages\" pages with useful free space",
  		get_namespace_name(RelationGetNamespace(onerel)),
  		RelationGetRelationName(onerel)),
!  errhint((vacrelstats->tot_free_pages > vacrelstats->rel_pages * 0.20 ?
! 			/* Only suggest VACUUM FULL if 20% free */
! 			"Consider using VACUUM FULL on this relation or increasing the configuration parameter \"max_fsm_pages\"." :
! 			"Consider increasing the configuration parameter \"max_fsm_pages\".";
  
  	/* Update statistics in pg_class */
  	vac_update_relstats(RelationGetRelid(onerel),

---(end of broadcast)---
TIP 6: explain analyze is your friend


[PATCHES] First implementation of GIN for pg_trgm

2007-02-21 Thread Guillaume Smet

Hi all,

Here is my preliminary work on porting pg_trgm to GIN. pg_trgm can be
a very good addition to tsearch2 to suggest spellings for mispelled
words as explained in the README.pg_trgm file and I'd like to use it
in this case. GIST implementation is a bit slow so I tried to port it
to use GIN.

The attached patch is the first working implementation. It's not final
but I would like some feedback on how to fix the remaining problems.


From a previous discussion with Teodor, it would be better to store an

int in the index instead of a text (it takes less space and is
faster). I couldn't find any example so if anyone has an advice to fix
that, it's welcome (mostly how to pack the trigram into an int instead
of a text).

The last problem is that similarity calculated in the GIN index is
higher than the one with GIST so I have to set the trgm_limit quite
high to have decent results (a limit of 0.8 instead of 0.3 seems to be
quite good).
AFAICS, it comes from the fact that I couldn't find any way to get the
length of the indexed trigram which is taken into account with GIST so
we're not exactly filtering the results in the same way.
Does anyone have an idea on how to fix this point?

Thanks for your attention.

--
Guillaume
Index: Makefile
===
RCS file: /projects/cvsroot/pgsql/contrib/pg_trgm/Makefile,v
retrieving revision 1.6
diff -c -r1.6 Makefile
*** Makefile9 Feb 2007 17:24:33 -   1.6
--- Makefile21 Feb 2007 23:49:37 -
***
*** 1,7 
  # $PostgreSQL: pgsql/contrib/pg_trgm/Makefile,v 1.6 2007/02/09 17:24:33 
petere Exp $
  
  MODULE_big = pg_trgm
! OBJS = trgm_op.o trgm_gist.o 
  
  DATA_built = pg_trgm.sql
  DATA = uninstall_pg_trgm.sql
--- 1,7 
  # $PostgreSQL: pgsql/contrib/pg_trgm/Makefile,v 1.6 2007/02/09 17:24:33 
petere Exp $
  
  MODULE_big = pg_trgm
! OBJS = trgm_op.o trgm_gist.o trgm_gin.o
  
  DATA_built = pg_trgm.sql
  DATA = uninstall_pg_trgm.sql
Index: uninstall_pg_trgm.sql
===
RCS file: /projects/cvsroot/pgsql/contrib/pg_trgm/uninstall_pg_trgm.sql,v
retrieving revision 1.2
diff -c -r1.2 uninstall_pg_trgm.sql
*** uninstall_pg_trgm.sql   13 Mar 2006 18:04:58 -  1.2
--- uninstall_pg_trgm.sql   21 Feb 2007 23:49:37 -
***
*** 20,25 
--- 20,33 
  
  DROP TYPE gtrgm CASCADE;
  
+ DROP OPERATOR CLASS gin_trgm_ops USING gin;
+ 
+ DROP FUNCTION gin_extract_trgm(text, internal);
+ 
+ DROP FUNCTION gin_extract_trgm(text, internal, internal);
+ 
+ DROP FUNCTION gin_trgm_consistent(internal, internal, text);
+ 
  DROP OPERATOR % (text, text);
  
  DROP FUNCTION similarity_op(text,text);
Index: pg_trgm.sql.in
===
RCS file: /projects/cvsroot/pgsql/contrib/pg_trgm/pg_trgm.sql.in,v
retrieving revision 1.2
diff -c -r1.2 pg_trgm.sql.in
*** pg_trgm.sql.in  27 Feb 2006 16:09:48 -  1.2
--- pg_trgm.sql.in  21 Feb 2007 23:49:37 -
***
*** 36,42 
  JOIN = contjoinsel
  );
  
! --gist key
  CREATE FUNCTION gtrgm_in(cstring)
  RETURNS gtrgm
  AS 'MODULE_PATHNAME'
--- 36,42 
  JOIN = contjoinsel
  );
  
! -- gist key
  CREATE FUNCTION gtrgm_in(cstring)
  RETURNS gtrgm
  AS 'MODULE_PATHNAME'
***
*** 53,59 
  OUTPUT = gtrgm_out
  );
  
! -- support functions
  CREATE FUNCTION gtrgm_consistent(gtrgm,internal,int4)
  RETURNS bool
  AS 'MODULE_PATHNAME'
--- 53,59 
  OUTPUT = gtrgm_out
  );
  
! -- support functions for gist
  CREATE FUNCTION gtrgm_consistent(gtrgm,internal,int4)
  RETURNS bool
  AS 'MODULE_PATHNAME'
***
*** 89,95 
  AS 'MODULE_PATHNAME'
  LANGUAGE C;
  
! -- create the operator class
  CREATE OPERATOR CLASS gist_trgm_ops
  FOR TYPE text USING gist
  AS
--- 89,95 
  AS 'MODULE_PATHNAME'
  LANGUAGE C;
  
! -- create the operator class for gist
  CREATE OPERATOR CLASS gist_trgm_ops
  FOR TYPE text USING gist
  AS
***
*** 103,107 
--- 103,133 
  FUNCTION7   gtrgm_same (gtrgm, gtrgm, internal),
  STORAGE gtrgm;
  
+ -- support functions for gin
+ CREATE FUNCTION gin_extract_trgm(text, internal)
+ RETURNS internal
+ AS 'MODULE_PATHNAME'
+ LANGUAGE C;
+ 
+ CREATE FUNCTION gin_extract_trgm(text, internal, internal)
+ RETURNS internal
+ AS 'MODULE_PATHNAME'
+ LANGUAGE C;
+ 
+ CREATE FUNCTION gin_trgm_consistent(internal, internal, text)
+ RETURNS internal
+ AS 'MODULE_PATHNAME'
+ LANGUAGE C;
+ 
+ -- create the operator class for gin
+ CREATE OPERATOR CLASS gin_trgm_ops
+ FOR TYPE text USING gin
+ AS
+ OPERATOR1   % (text, text),
+ FUNCTION1   bttextcmp (text, text),
+ FUNCTION2   gin_extract_trgm (text, internal),
+ FUNCTION3   gin_extract_trgm (text, internal, internal),
+ FUNCTION4   gi

Re: [PATCHES] [previously on HACKERS] "Compacting" a relation

2007-02-21 Thread Alvaro Herrera
Bruce Momjian wrote:
> Alvaro Herrera wrote:
> > Bruce Momjian wrote:
> > > 
> > > I applied the optional VACUUM FULL version, but modified to code to say
> > > 20% rather than a factor of 5, attached.
> > 
> > String construction does not work well with translations; please
> > reformulate this.
> > 
> > > +  errhint("Consider%sincreasing the 
> > > configuration parameter \"max_fsm_pages\".",
> > > + /* Only suggest VACUUM 
> > > FULL if 20% free */
> > > + 
> > > (vacrelstats->tot_free_pages > vacrelstats->rel_pages * 0.20
> > > + ? " using 
> > > VACUUM FULL on this relation or ": " ";
> 
> OK, updated.

Thanks :-)


-- 
Alvaro Herrerahttp://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [PATCHES] WIP patch - INSERT-able log statements

2007-02-21 Thread Greg Smith

On Thu, 22 Feb 2007, FAST PostgreSQL wrote:

As we are triggering the sql output in log_destination, if the user 
gives 'syslog,sql' as options he is going to get two different looking 
logs (in terms of contents) depending upon his settings.


Yes, exactly; it's a good thing.  People add and remove things from the 
text logs to make them easier to read.  It's one of the reasons they're 
harder to process.  Since readability isn't a requirement for the SQL 
formatted ones, you can pack a lot more into there and make it available 
easily anyway.


I keep having every part of this conversation twice, so here's take two on 
this one.  The things that people want out of the text logs are not 
necessarily the same things they want from the SQL ones.  For example, I 
have a situation where the semantics of the syslog output is being driven 
by Sarbanes-Oxley related mechanics.  But the SQL logs are be based on my 
requirements, which is to include close enough to everything that it might 
as well be the whole set, in case I forgot something I find I need later. 
The SQL logs are *completely* different from the syslog setup.


--
* Greg Smith [EMAIL PROTECTED] http://www.gregsmith.com Baltimore, MD

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [PATCHES] [HACKERS] BLCKSZ fun facts

2007-02-21 Thread Peter Eisentraut
Bruce Momjian wrote:
> I have implemented your ideas for checking BLCKSZ >= 1024,

I think the check should be were the issue arises, not in some distant 
file without explanation.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/

---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faq