Sunday, June 8, 2008

Re: [PATCHES] Patch for dependency traversal during DROP

I wrote:
> The attached patch rewrites DROP recursion according to my sketch here:
> http://archives.postgresql.org/pgsql-hackers/2008-05/msg00301.php

> I was afraid while writing the patch that it might be too slow due to
> reliance on simple linear list searching in ObjectAddresses lists ---
> that means that deleting N objects is O(N^2),

I did some investigation with gprof. In a test case involving dropping
about 13000 objects (basically, replicating the regression "public"
schema 10 times with a common owner, and then doing DROP OWNED BY),
I found that object_address_present_add_flags() accounted for about 4
seconds of CPU out of a total elapsed runtime of 60 seconds.
Extrapolating, that function would be accounting for a third of the
runtime at 100K objects and 85% of the runtime at 1M objects. So unless
anyone foresees people routinely dropping millions of objects at a time,
it seems we don't need to bother improving the ObjectAddresses search
algorithm.

> Another possible objection to this patch is that it takes an awful lot
> of locks on things that we never locked before; a large DROP operation
> could easily run out of locktable shared memory when it did not before.
> That's fixable by increasing max_locks_per_transaction, but I wonder
> whether there will be any push-back about it.

This, on the other hand, might be a real problem --- I had to double the
default value of max_locks_per_transaction to run the 13K-objects
example.

I'm toying with the idea of not taking a deletion lock when traversing
an INTERNAL dependency, on the grounds that no one could be deleting
the dependent object anyway unless they have lock on its owner object ---
which we already have. This would make for a noticeable reduction in
the number of new locks taken as a result of this patch; for instance
we'd not bother locking the rowtype of a relation when dropping the
relation. Can anyone think of a case where this would go wrong?

regards, tom lane

--
Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-patches

Re: [pgadmin-hackers] Crash at right mouse click in data grid

On Sat, May 31, 2008 at 12:46 AM, Robins Tharakan <tharakan@gmail.com> wrote:

> In particular, the bug report in the April conversation, said that the crash
> is due to IsRunning() check that Erwin is pointing to.

Oh yeah, that one :-(. I'm beginning to think we could use a bug
tracker (and I hate Bugzilla before anyone suggest it!).

I'm still stumped about that now, but I've worked around it by
checking if the refresh button is enabled as we already do in a few
other similar places. The data refresh code enables/disables that for
safety so it should be a reliable indicator of whether or not a thread
is running.

--
Dave Page
EnterpriseDB UK: http://www.enterprisedb.com

--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

[pgadmin-hackers] SVN Commit by dpage: r7363 - trunk/pgadmin3/pgadmin/frm

Author: dpage

Date: 2008-06-08 19:37:47 +0100 (Sun, 08 Jun 2008)

New Revision: 7363

Revision summary: http://svn.pgadmin.org/cgi-bin/viewcvs.cgi/?rev=7363&view=rev

Log:
Fix (ok, implement a hack to prevent) a potential crash when checking if the data thread is running in the edit grid before displaying the sort/filter context menu.


Modified:
trunk/pgadmin3/pgadmin/frm/frmEditGrid.cpp

--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Re: [pgsql-es-ayuda] generatedKeys, jdbc: no logro obtener llaves generadas

redirigiendo a la lista

2008/6/8 Roberto Rodríguez Pino <rodpin@gmail.com>:
>
> El dom, 08-06-2008 a las 12:57 -0500, Jaime Casanova escribió:
>
>> Mmm... tienes razon... aunque no estoy seguro que te hayas percatado
>> que la funcion que declare no es plpgsql sino sql, mira la clausula
>> LANGUAGE...
>>
>> las funciones sql no necesitan un return sino que regresen el valor
>> que retorne el ultimo select, crei que haria lo mismo con la clausula
>> RETURNING de un insert/update/delete pero no es asi... la funcion
>> podrias hacerla asi
>>
>> CREATE OR REPLACE function ingresarVoucherEntrada( _idEmpleado "int4",
>> _idProveedor "int4", _fechaEmision"date", _documentoAsociado"int4")
>> returns int as $$
>>
>> insert into voucherEntrada (idEmpleado, idProveedor, fechaEmision,
>> docuementoasociado)
>> values (_idEmpleado, _idProveedor, _fechaEmision,_documentoAsociado);
>>
>> select currval('nombre de la secuencia que usa el serial')::int;
>>
>> $$ LANGUAGE 'sql' VOLATILE;
>>
>>
> He probado lo siguiente:
> CREATE OR REPLACE function ingresarVoucherEntrada( _idEmpleado "int4",
> _idProveedor "int4", _fechaEmision"date", _documentoAsociado"int4")
> returns int as $$
> insert into voucherEntrada (idEmpleado, idProveedor,
> fechaEmision, docuementoasociado)
> values ($1, $2, $3,$4);
>
> select currval('idvoucherentrada')::int;
> $$ LANGUAGE 'sql' VOLATILE;
>
> y obtengo un
> ERROR: no existe la relación «idvoucherentrada»
> CONTEXT: función SQL «ingresarvoucherentrada»
> Al tratar de ingresar la funcion.
>

http://www.postgresql.org/docs/8.3/static/sql-createsequence.html
http://www.postgresql.org/docs/8.3/static/datatype-numeric.html#DATATYPE-SERIAL

Las secuencias son objetos que generan numeros secuenciales, es lo que
usa el tipo serial para generar el siguiente numero

en la funcion currval debes usar el nombre de la secuencia no el
nombre del campo... si no le has cambiado el nombre a la secuencia y
puesto que no sabias lo que era probablemente no lo has hecho,
entonces el nombre de la secuencia que afecta a ese campo serial debe
ser nombretabla_nombrecolumna_seq

--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Guayaquil - Ecuador
Cel. (593) 87171157
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?

http://archives.postgresql.org/pgsql-es-ayuda

Re: [pgadmin-support] pgadmin 1.8.4 Upgrade

On Sat, Jun 7, 2008 at 7:02 PM, D Galen <degalen@comcast.net> wrote:
> I currently have ver. 1.8.2, which was installed (Windows 2000 Prof) from
> the postgres package. I downloaded the 1.8.4 upgrade. When I run the
> upgrade.bat file, the MSI install screen comes up but then exits without
> installing. I don't show PgAdmin in add remove programs, (because it was
> installed from postgres pkg?). Do I need to move the download to a
> particular location?

You cannot upgrade the copy of pgAdmin bundled with PostgreSQL in that
way (it can only be upgraded using the updated PostgreSQL installer).
Just run a regular installation of pgAdmin - it will install in
parallel and work just fine. Better yet, wait a few days for
PostgreSQL 8.3.3 which will come with pgAdmin 1.8.4 and upgrade the
PostgreSQL package.

--
Dave Page
EnterpriseDB UK: http://www.enterprisedb.com

--
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support

[HACKERS] Proposal - improve eqsel estimates by including histogram bucket numdistinct statistics

Currently eqsel assumes that, except for the values stored as mcv's,
the number of times that a value appears in a table column is
independent of it's value. Unfortunately, this often yields
inappropriate selectivity estimates and frequently leads to
inappropriate plans.

As an example, consider an insurance company that keeps a record of
patient heights. Assume there are a 1000000 patient heights in this
column, and they are distributed normally with a mean of 1.7526 and a
standard deviation of 0.0762. Furthermore, assume that the heights are
only measured to the nearest centimeter. Then, we'd expect there to be
about 73 distinct heights, with a SD of 1.5.

Ignoring the effects of MCV's, the planner expects
SELECT height FROM heights WHERE height = 1.75;
to yield roughly 13000 results. However, given that we know the
underlying distribution, we would expect to see ~52000 results.

Similarly, the planner expects to see 13000 results from
SELECT 1.75 FROM heights WHERE height = 2.05;
While we expect to see 2.7.

Obviously this example is not totally convincing: if I were to post
this to pg-general looking for advice I'm sure that everyone would
tell me to just increase the size of my mcv stats. However, in cases
where the number of distinct values is higher, this isn't always
feasible. Also, why store a list of 50 values and their frequencies
when 10 extra would provide the same plans without bloating
pg_statistics?

To combat this problem, I have two different proposals.

Idea 1: Keep an array of stadistinct that correspond to each bucket size.

In the example above, ( again ignoring mcv's ) the quantile data is

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
1.38 1.66 1.69 1.71 1.73 1.75 1.77 1.79 1.82 1.85 2.12

with numdistinct values of ( respectively )

29 2 2 2 2 2 2 3 3 25

For the two above examples, this new approach would yield selectivity
estimates of

(1000000/10)/2 = 50000 ( vs an actual ED of ~52000 )
and
(1000000/10)/25 = 4000 ( vs an actual ED of ~2.7 )

Furthermore, this is done without mcvs. Since mcv's would make the
histogram more sensitive to the edges, the estimates with mcv's should
be correspondingly better.


There are two potential problems that I see with this approach:

1) It assumes the = is equivalent to <= and >= . This is certainly
true for real numbers, but is it true for every equality relation that
eqsel predicts for?

2) It bloats the stats table.

Idea 2: Keep a correlation statistic between ndistinct and bucket size

This addresses problem #2.

In lieu of keeping an actual list of ndistinct per histogram bucket,
we store the linear scaling coefficient between histogram bucket width
and ndistinct/(avg ndistinct). To visualize this, it is easiest to
consider plotting the bucket width versus ndistinct. The scaling
coefficient is the linear line that passes through origin and
minimizes the square of the difference between it's estimate for
ndistinct and the actual value.

When I apply this method to the above data I find a coefficient of
13.63 for an average ndist of 72/10. This provides selectivity
estimates, for the above two examples, of
(1000000/10)/( 13.63*7.2*(1.77 - 1.75) ) = 50950 ( vs an actual ED of ~52000 )
and
(1000000/10)/( 13.63*7.2*(2.12 - 1.85) ) = 3774 ( vs an actual ED of ~2.7 )

Although this yields better results than idea 1 for this particular
example, it will be much more sensitive to weird distributions.

Obviously there are some special cases to consider: we wouldn't want
the stats to be skewed such that they provide really bad plans.
However, with some carefully designed caps I believe that we could
ensure that the estimates are at least as good as they are now. In
fact, I'm not certain that an R^2 penalty is the correct loss
function. Ideally, we want to minimize the extra time that the db
spends by choosing an incorrect plan. Maybe slight overestimations are
better than slight underestimations? Maybe the cost of the occasional
(really) bad plan is less than the cost of a bunch of kinda bad plans?

Finally, we aren't limited to just one coefficient. We could also
store multiple coefficents to improve our estimates, and provide a
compromise between ideas 1 and 2.

Food for future thought...

I addition to the previous benefits, I think that this method has the
potential to make the process by which MCV are chosen (or not chosen)
smarter. Now the planner chooses a value to be an mcv candidate if
it's frequency is greater than 1.25 * the average frequency. Given
that this improved selectivity estimate is implemented, maybe a better
way would be to include a value as an mcv if it's a) above a certain
threshold and b) the histogram selectivity estimator does do a poor
job.

What are peoples thoughts on idea 1 vs idea 2?

Am I missing any relevant details about the planner's operation?

Do people think that the improved estimates would be worth the
additional overhead?

-Nathan

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Re: [GENERAL] temporarily deactivate an index

Jaime Casanova escribió:

> if i mark the index not ready (using pg_index.indisvalid or
> pg_index.indisready depending on version), will the index be updated
> if in another transaction i make an insert?

Yes (in fact that's the whole point of having an index marked "not
valid/ready").

--
Alvaro Herrera

http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: [pgadmin-hackers] Missing libraries and path

On Sat, Jun 7, 2008 at 5:23 PM, Mickael Deloison <mdeloison@gmail.com> wrote:
> Hi pgAdmin hackers,
>
> I downloaded a fresh copy of pgAdmin code from the SVN repository
> today. In Visual C++ Express 2005, I had to do a few things to make
> pgAdmin compile well.
>
> 1) Libraries to add:
> advapi32.lib
> user32.lib
> gdi32.lib
> comdlg32.lib
> shell32.lib
> ole32.lib
> oleaut32.lib

That sounds like you didn't fully configure VC++ to work with the platform SDK.

> 2) Link editor > General > Supplementary path:
> $(PGDIR)/lib/ms
> My PGDIR is D:\Programs\PostgreSQL\8.1
>
> Maybe pgAdmin3.vcproj needs to be updated?

No, your copy of PostgreSQL :-). The path is correct for 8.3/8.4

--
Dave Page
EnterpriseDB UK: http://www.enterprisedb.com

--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Re: [pgsql-es-ayuda] Comportamiento work_mem (windows)

Raúl Andrés Duque Murillo escribió:

> 7. Ejecuto de nuevo la consulta, y efectivamente se ha eliminado el
> uso de los archivos temporales de aprox. 1.5MB, pero sigue usándose el
> de 35MB. Vamos bien !!!
> 8. Subo el work_mem = 50MB
> 9. Ejecuto la consulta MULTIPLES VECES y SIGUE utilizándose el archivo
> temporal de 35MB pero creció el tiempo en 2s !!!
> 10. Sé que los 35MB se utilizan para el order by por que si lo quito ya no se usa ese archivo temporal.

No tengo muy claro esta parte del codigo, pero se me ocurre que quizas
lo que pasa es que la estimacion es que va a usar mucha mas memoria para
hacer el sort completo, y por eso decide usar el disco desde el
principio. Fijate en el EXPLAIN ANALYZE si la estimacion total de
tuplas esta muy desviada de la cantidad verdadera de tuplas que se
generan en ese sort. Quizas intenta poner un work_mem mucho mas grande
(100 o 500 MB) a ver si en algun momento se decide a no usar el disco.

> 11. Vuelvo a work_mem = 5MB y vuelvo a optener los valores de 2s por debajo.

Esta parte no me queda nada clara. Supongo que hay una diferencia en el
plan pero no mostraste los planes.

--
Alvaro Herrera

http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

[COMMITTERS] pgsnap - pgsnap: Add a report to get index whose size is greater than

Log Message:
-----------
Add a report to get index whose size is greater than the associated
table.

Modified Files:
--------------
pgsnap/pgsnap:
ChangeLog (r1.55 -> r1.56)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/ChangeLog.diff?r1=1.55&r2=1.56)
TODO (r1.24 -> r1.25)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/TODO.diff?r1=1.24&r2=1.25)
pgsnap/pgsnap/lib:
navigate.php (r1.20 -> r1.21)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/navigate.php.diff?r1=1.20&r2=1.21)
reports.php (r1.1 -> r1.2)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/reports.php.diff?r1=1.1&r2=1.2)

Added Files:
-----------
pgsnap/pgsnap/lib:
indexesbiggerthantables.php (r1.1)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/indexesbiggerthantables.php?rev=1.1&content-type=text/x-cvsweb-markup)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

[COMMITTERS] pgsnap - pgsnap: Bugfix: typo in a variable name.

Log Message:
-----------
Bugfix: typo in a variable name.

Modified Files:
--------------
pgsnap/pgsnap/lib:
activities.php (r1.7 -> r1.8)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/activities.php.diff?r1=1.7&r2=1.8)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Re: [GENERAL] temporarily deactivate an index

On Sun, Jun 8, 2008 at 11:45 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Viktor Rosenfeld <rosenfel@informatik.hu-berlin.de> writes:
>> That works, but I'm still looking for another way to deactivate the
>> index. The reason being, that my query load is randomly generated by
>> a Java program and I don't want to go and change the SQL compiler.
>
> Well, you're going to have to change *something* on the client side,
> assuming you want this behavioral change to affect only some queries.
>
> Otherwise, in versions that have CREATE INDEX CONCURRENTLY you could
> mark the index not ready to use yet (see pg_index.indisvalid or
> pg_index.indisready depending on version).
>

if i mark the index not ready (using pg_index.indisvalid or
pg_index.indisready depending on version), will the index be updated
if in another transaction i make an insert?

--
regards,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Guayaquil - Ecuador
Cel. (593) 87171157

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[COMMITTERS] pgsnap - pgsnap: Add a --all option to get a report for each database

Log Message:
-----------
Add a --all option to get a report for each database available on the
selected PostgreSQL server.

Modified Files:
--------------
pgsnap/pgsnap:
ChangeLog (r1.54 -> r1.55)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/ChangeLog.diff?r1=1.54&r2=1.55)
TODO (r1.23 -> r1.24)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/TODO.diff?r1=1.23&r2=1.24)
pgsnap.php (r1.28 -> r1.29)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/pgsnap.php.diff?r1=1.28&r2=1.29)
pgsnap/pgsnap/lib:
getopt.php (r1.16 -> r1.17)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/getopt.php.diff?r1=1.16&r2=1.17)
pgsnap/pgsnap/man:
pgsnap.1 (r1.7 -> r1.8)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/man/pgsnap.1.diff?r1=1.7&r2=1.8)

Added Files:
-----------
pgsnap/pgsnap/lib:
reports.php (r1.1)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/reports.php?rev=1.1&content-type=text/x-cvsweb-markup)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Re: [GENERAL] libpq.so.4

Oliver Kohll <oliver@gtwm.co.uk> writes:
> What I've thought of trying so far is
> 1) creating a symlink called libpq.so.4 towards libpq.so.5 - slightly
> dangerous due to possible API changes?

Worth trying. According to the CVS logs
http://archives.postgresql.org/pgsql-committers/2006-04/msg00341.php
the ABI break from .4 to .5 was simply to stop exporting symbols that
weren't officially part of the API. So a symlink would work for
applications that played by the rules, and if you have any that
didn't the failure will be pretty obvious.

> 2) extracting a copy of libpq.so.4 from the previous RPM release of
> postgres and manually uploading it

That would work too.

> 3) building a custom compat package - I don't know how to do this
> though.

If you got the 8.3 package from someplace they should have an 8.1
compat package too.

regards, tom lane

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[COMMITTERS] pgsnap - pgsnap: "Cache hit ratio" report is not interesting if

Log Message:
-----------
"Cache hit ratio" report is not interesting if stats_block_level (or
track_counts in 8.3) is disabled.

Modified Files:
--------------
pgsnap/pgsnap:
ChangeLog (r1.53 -> r1.54)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/ChangeLog.diff?r1=1.53&r2=1.54)
TODO (r1.22 -> r1.23)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/TODO.diff?r1=1.22&r2=1.23)
pgsnap.php (r1.27 -> r1.28)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/pgsnap.php.diff?r1=1.27&r2=1.28)
pgsnap/pgsnap/template:
header.template.html (r1.6 -> r1.7)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/template/header.template.html.diff?r1=1.6&r2=1.7)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Re: [GENERAL] temporarily deactivate an index

Viktor Rosenfeld <rosenfel@informatik.hu-berlin.de> writes:
> That works, but I'm still looking for another way to deactivate the
> index. The reason being, that my query load is randomly generated by
> a Java program and I don't want to go and change the SQL compiler.

Well, you're going to have to change *something* on the client side,
assuming you want this behavioral change to affect only some queries.

Otherwise, in versions that have CREATE INDEX CONCURRENTLY you could
mark the index not ready to use yet (see pg_index.indisvalid or
pg_index.indisready depending on version).

Another line of attack, which I think only works in 8.3 and up,
is to make a planner plugin that disables specific indexes from
being considered. In fact I think I'd made a toy one of those
last year [ rummages... ] Yeah, here it is. Code attached.
No documentation, but basically you'd build it using pgxs and
then do
LOAD '$libdir/planignoreindex';
SET ignore_index = name-of-index;
Again this would be difficult to do without any client changes.

regards, tom lane

Re: [GENERAL] PL/pgSQL graph enumeration function hangs

Charles F. Munat wrote:
> Thanks, but the join clause is there, it's just buried in the subqueries.
>
> If there is a problem, it is probably that the loop never ends.
>
> Or it could be that the answer is exponential, and I just have too many
> rows in the source table and too deep a graph.
>
> I figured out how to do it in the application with one call to the
> database and a simple recursive method in a class, though, so I'm not
> going to use a stored function in the DB.

If you have figured it out this way you can even use one of the
PL/languages to implement it within the database :-)

Cheers
Tino

Re: [PATCHES] [HACKERS] TRUNCATE TABLE with IDENTITY

Alvaro Herrera <alvherre@commandprompt.com> writes:
> Tom Lane wrote:
>> 2. I had first dismissed Neil's idea of transactional sequence updates
>> as impossible, but on second look it could be done. Suppose RESTART
>> IDENTITY does this for each sequence;
>>
>> * obtain AccessExclusiveLock;
>> * assign a new relfilenode;
>> * insert a sequence row with all parameters copied except
>> last_value copies start_value;
>> * hold AccessExclusiveLock till commit.

> Hmm, this kills the idea of moving sequence data to a single
> non-transactional catalog :-(

Well, there are a number of holes in our ideas of how to do that anyway.
But offhand I don't see why we couldn't distinguish regular heap_update
from update_in_place on single rows within a catalog.

regards, tom lane

--
Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-patches

Re: [GENERAL] temporarily deactivate an index

On Sun, Jun 8, 2008 at 7:55 AM, Jaime Casanova <systemguards@gmail.com> wrote:
> On Sun, Jun 8, 2008 at 1:34 AM, Scott Marlowe <scott.marlowe@gmail.com> wrote:
>> On Sat, Jun 7, 2008 at 5:16 PM, Viktor Rosenfeld
>> <rosenfel@informatik.hu-berlin.de> wrote:
>>>>
>>>> Try this:
>>>>
>>>> begin;
>>>> drop indexname;
>>>> explain analyze select ...;
>>>> rollback;
>>>
>>> That works, but I'm still looking for another way to deactivate the index.
>>> The reason being, that my query load is randomly generated by a Java
>>> program and I don't want to go and change the SQL compiler.
>>
>> Sorry, I'm out of ideas. I mean, you can turn off all indexes with
>> set enable_indexscan=off but there's no other way to do it cheaply and
>> in such a fine grained way.
>>
>
> with "enable_indexscan=off" you're not turning indexes off but putting
> a high cost in using them... the effect, most of the time, is that
> indexes will not be used but you can't be sure...
>
> the better solution was the first one: dropping the index inside a
> transaction, execute the explain analyze of the query and rollback the
> transaction

True. Also there's been some talk lately about how to add query
planner controls to postgresql to control the planner. This being an
open source project, I think it's pretty reasonable to put the onus of
that kind of thing on the user community to take a first whack at
before someone spends a lot of time instrumenting it in full in the
core.

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[COMMITTERS] pgsnap - pgsnap: Add Stat IO reports.

Log Message:
-----------
Add Stat IO reports.

Modified Files:
--------------
pgsnap/pgsnap:
ChangeLog (r1.52 -> r1.53)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/ChangeLog.diff?r1=1.52&r2=1.53)
TODO (r1.21 -> r1.22)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/TODO.diff?r1=1.21&r2=1.22)
pgsnap.php (r1.26 -> r1.27)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/pgsnap.php.diff?r1=1.26&r2=1.27)
pgsnap/pgsnap/lib:
navigate.php (r1.19 -> r1.20)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/navigate.php.diff?r1=1.19&r2=1.20)

Added Files:
-----------
pgsnap/pgsnap/lib:
statio_indexes.php (r1.1)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/statio_indexes.php?rev=1.1&content-type=text/x-cvsweb-markup)
statio_sequences.php (r1.1)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/statio_sequences.php?rev=1.1&content-type=text/x-cvsweb-markup)
statio_tables.php (r1.1)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/statio_tables.php?rev=1.1&content-type=text/x-cvsweb-markup)

Removed Files:
-------------
pgsnap/pgsnap/lib:
stat_sequences.php
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/stat_sequences.php)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

[COMMITTERS] pgsnap - pgsnap: Add "Relations Bloat" Report.

Log Message:
-----------
Add "Relations Bloat" Report.

Modified Files:
--------------
pgsnap/pgsnap:
ChangeLog (r1.51 -> r1.52)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/ChangeLog.diff?r1=1.51&r2=1.52)
pgsnap.php (r1.25 -> r1.26)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/pgsnap.php.diff?r1=1.25&r2=1.26)
pgsnap/pgsnap/lib:
navigate.php (r1.18 -> r1.19)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/navigate.php.diff?r1=1.18&r2=1.19)

Added Files:
-----------
pgsnap/pgsnap/lib:
relationsbloat.php (r1.1)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/relationsbloat.php?rev=1.1&content-type=text/x-cvsweb-markup)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

[BUGS] BUG #4230: No mapping between account names and security IDs was done

The following bug has been logged online:

Bug reference: 4230
Logged by: Gurgen
Email address: gerble828@yahoo.com
PostgreSQL version: 8.3
Operating system: Vista
Description: No mapping between account names and security IDs was
done
Details:

No mapping between account names and security IDs was done

That is the message i get when i try to setup a account, and install
Postgresql

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

[COMMITTERS] pgsnap - pgsnap: Add "Non Idle Processes" Report.

Log Message:
-----------
Add "Non Idle Processes" Report.

Modified Files:
--------------
pgsnap/pgsnap:
ChangeLog (r1.50 -> r1.51)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/ChangeLog.diff?r1=1.50&r2=1.51)
pgsnap.php (r1.24 -> r1.25)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/pgsnap.php.diff?r1=1.24&r2=1.25)
pgsnap/pgsnap/lib:
navigate.php (r1.17 -> r1.18)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/navigate.php.diff?r1=1.17&r2=1.18)

Added Files:
-----------
pgsnap/pgsnap/lib:
nonidleprocesses.php (r1.1)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/nonidleprocesses.php?rev=1.1&content-type=text/x-cvsweb-markup)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Re: [pgsql-es-ayuda] Procedure para actualizar secuencias

El día 8 de junio de 2008 1:41, Raúl Andrés Duque Murillo
<ra_duque@yahoo.com.mx> escribió:
> Cordial Saludo.
>
> Estoy pensando en hacer un procedure que actualice TODAS las secuencias a
> los max(id_table) de las tablas correspondientes (para evitarme hacer
> setvals de cada secuencia), lógicamente este procedimiento sólo lo

pero no se supone esto siempre es así, a menos que asignes al campo un
valor arbitrario y no un default ???

> utilizaría en el momento de inicializar la DB para una nueva instalación ya
> que algunas tablas tienen algunos datos "quemados" y estando fuera de
> producción. Cómo creo que es una necesidad que pudieron tener algunos
> compañeros en el pasado, de pronto ya alguien hizo este procedure y quisiera
> compartirlo.
>
> Agradezco su colaboración.
>
> Atentamente,
>
> RAUL DUQUE
> Bogotá, Colombiaq
--
TIP 1: para suscribirte y desuscribirte, visita http://archives.postgresql.org/pgsql-es-ayuda

Re: [GENERAL] temporarily deactivate an index

On Sun, Jun 8, 2008 at 1:34 AM, Scott Marlowe <scott.marlowe@gmail.com> wrote:
> On Sat, Jun 7, 2008 at 5:16 PM, Viktor Rosenfeld
> <rosenfel@informatik.hu-berlin.de> wrote:
>>>
>>> Try this:
>>>
>>> begin;
>>> drop indexname;
>>> explain analyze select ...;
>>> rollback;
>>
>> That works, but I'm still looking for another way to deactivate the index.
>> The reason being, that my query load is randomly generated by a Java
>> program and I don't want to go and change the SQL compiler.
>
> Sorry, I'm out of ideas. I mean, you can turn off all indexes with
> set enable_indexscan=off but there's no other way to do it cheaply and
> in such a fine grained way.
>

with "enable_indexscan=off" you're not turning indexes off but putting
a high cost in using them... the effect, most of the time, is that
indexes will not be used but you can't be sure...

the better solution was the first one: dropping the index inside a
transaction, execute the explain analyze of the query and rollback the
transaction

--
regards,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Guayaquil - Ecuador
Cel. (593) 87171157

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[COMMITTERS] pgsnap - pgsnap: * Display database size with a graph.

Log Message:
-----------
* Display database size with a graph.
* Display tablespace size with a graph.
* Display table size with a graph.
It relies on Open Flash Chart PHP library.

Modified Files:
--------------
pgsnap/pgsnap:
ChangeLog (r1.49 -> r1.50)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/ChangeLog.diff?r1=1.49&r2=1.50)
INSTALL (r1.2 -> r1.3)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/INSTALL.diff?r1=1.2&r2=1.3)
TODO (r1.20 -> r1.21)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/TODO.diff?r1=1.20&r2=1.21)
pgsnap.php (r1.23 -> r1.24)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/pgsnap.php.diff?r1=1.23&r2=1.24)
pgsnap/pgsnap/lib:
getmodules.php (r1.5 -> r1.6)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/getmodules.php.diff?r1=1.5&r2=1.6)
navigate.php (r1.16 -> r1.17)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/navigate.php.diff?r1=1.16&r2=1.17)

Added Files:
-----------
pgsnap/pgsnap/lib:
graph_dbsize.php (r1.1)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/graph_dbsize.php?rev=1.1&content-type=text/x-cvsweb-markup)
graph_tablesize.php (r1.1)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/graph_tablesize.php?rev=1.1&content-type=text/x-cvsweb-markup)
graph_tblspcsize.php (r1.1)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/graph_tblspcsize.php?rev=1.1&content-type=text/x-cvsweb-markup)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Re: [pgsql-es-ayuda] generatedKeys, jdbc: no logro obtener llaves generadas

2008/6/8 Roberto Rodríguez Pino <rodpin@gmail.com>:
> Estoy haciendo una aplicacion en java y accedo a la base de datos usando
> JDBC, pero necesito ocupar el valor de una llave que fue generada
> automaticamente (serial).
> En java estoy ocupando el metodo getGeneratedKeys(propia de jdbc) que me
> debiera entregar las llaves que se crearon tras las llamada que hago a
> una funcion de postgres.

el metodo getGeneratedKeys() no esta implementada en el jdbc de postgres

[...]
>
> La funcion que tengo en postgres es;
>
> CREATE OR REPLACE function ingresarVoucherEntrada( _idEmpleado "int4",
> _idProveedor "int4", _fechaEmision"date", _documentoAsociado"int4")
> returns void as $$
>
> BEGIN
> insert into voucherEntrada (idEmpleado, idProveedor, fechaEmision,
> docuementoasociado)
> values (_idEmpleado, _idProveedor, _fechaEmision,_documentoAsociado)
> ;
> END
> $$LANGUAGE 'plpgsql' VOLATILE;
>

una solucion podria ser:
CREATE OR REPLACE function ingresarVoucherEntrada( _idEmpleado "int4",
_idProveedor "int4", _fechaEmision"date", _documentoAsociado"int4")
returns int as $$

insert into voucherEntrada (idEmpleado, idProveedor, fechaEmision,
docuementoasociado)
values (_idEmpleado, _idProveedor, _fechaEmision,_documentoAsociado)
returning PonAquiElNombreDeTuCampoSerial ;

$$ LANGUAGE 'sql' VOLATILE;

--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Guayaquil - Ecuador
Cel. (593) 87171157
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?

http://archives.postgresql.org/pgsql-es-ayuda

[COMMITTERS] pgsnap - pgsnap: Display databases' name in red if blks_read>=blks_hit.

Log Message:
-----------
Display databases' name in red if blks_read>=blks_hit.

Modified Files:
--------------
pgsnap/pgsnap:
ChangeLog (r1.48 -> r1.49)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/ChangeLog.diff?r1=1.48&r2=1.49)
TODO (r1.19 -> r1.20)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/TODO.diff?r1=1.19&r2=1.20)
pgsnap/pgsnap/lib:
cachehitratio.php (r1.6 -> r1.7)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgsnap/pgsnap/pgsnap/lib/cachehitratio.php.diff?r1=1.6&r2=1.7)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

[GENERAL] libpq.so.4

Hello,

I have the same issue as this poster with libpq.so.4:

In short, I've upgraded to 8.3.1 from 8.1 on RHEL 4 (with some CentOS packages). I have apps with dependencies of libpq.so.4 but this is no longer available. 8.3.1 provides libpq.so.5 and the compat-libs provide libpq.so.3.

At the moment maintaining package management integrity is not a must - getting back to 100% package-controlled files can wait until the machine is replaced. Upgrading the dependent software is not an option.
With that in mind, any suggestions on options?

What I've thought of trying so far is
1) creating a symlink called libpq.so.4 towards libpq.so.5 - slightly dangerous due to possible API changes?
2) extracting a copy of libpq.so.4 from the previous RPM release of postgres and manually uploading it
3) building a custom compat package - I don't know how to do this though.

but I'm unaware of the pros and cons of these.

Any comments appreciated.

Regards
Oliver


oliver@gtwm.co.uk
 / 0845 456 1810 / 07814 828608
www.gtwm.co.uk - company


NOTE
No contracts may be concluded on behalf of GT webMarque by means of e-mail
communications. The contents of this e-mail are confidential to the
intended recipient at the e-mail address to which it has been addressed;
it may not be disclosed to or used by anyone other than this addressee,
nor may it be copied in any way. If received in error please return to
sender via e-mail.

DISCLAIMER
Please note that neither GT webMarque Ltd nor the sender accept any
responsibility for viruses transmitted via e-mail. It is your
responsibility to scan attachments (if any).




Re: [SQL] Need some magic with alternative rows

On 7 jun 2008, at 05.04, Andreas wrote:
> Is there a way to remove the default-rows if there exists a fk<>0
> row that has the same group_nr ?

Yes, use a correlated sub-query:

SELECT * FROM mytab m1
WHERE fk = 994010 OR (class_nr = 40 AND fk = 0 AND NOT EXISTS (SELECT
1 FROM mytab m2 WHERE m2.group_nr=m1.group_nr AND fk <> 0));


Sincerely,

Niklas Johansson


--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql

[pgadmin-support] Mac OS Leopard + Russian + pgAdmin III 1.8.3 - won't start!

Good day Dave and the community!

Today I've tried to launch new version of pgAdmin III 1.8.4.

and the same problem (I've tried previous versions) It crashes at
startup. This is the output from the crash report, maybe this helps

Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
Crashed Thread: 0

Thread 0 Crashed:
0 libwx_base_carbonu-2.8.0.dylib 0x010ca3a9
wxStringBase::compare(wchar_t const*) const + 77
1 libwx_base_carbonu-2.8.0.dylib 0x010b3ccf
wxLocale::GetSystemLanguage() + 591
2 libwx_base_carbonu-2.8.0.dylib 0x010b7055 wxLocale::Init(int, int)
+ 523
3 org.postgresql.pgadmin 0x0001507b 0x1000 + 82043
4 org.postgresql.pgadmin 0x003b4e0f 0x1000 + 3882511
5 libwx_base_carbonu-2.8.0.dylib 0x010ade94 wxEntry(int&, wchar_t**)
+ 52
6 org.postgresql.pgadmin 0x00008218 0x1000 + 29208
7 org.postgresql.pgadmin 0x00007b8e 0x1000 + 27534
8 org.postgresql.pgadmin 0x00007ab5 0x1000 + 27317


I'm running Mac OS X 10.5.3 (9D34) with default russian locale.


Is this possible to make pgAdmin running ??


Best regards,
Ilya Dyoshin

--
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support

Re: [pgsql-www] Ask for Help on Improving the FreeBSD FAQ

> Most of our documentation building technology was actually inspired and/or
> copied from the FreeBSD project. So I think chances are low you will find
> anything here that you don't already have. The integration with the web site
> and so on are different, but other people have already commented on that.

I see. I would like to ask how many user comments you do receive usually
(per week, per year or per release), whether it is hard to filter them
and maintain the documentation based on them. There is huge question in
our lines regarding this. (``How much does the interactivity cost?'')


Thank you very much,
:g


--
Sent via pgsql-www mailing list (pgsql-www@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-www

[pgsql-es-ayuda] generatedKeys, jdbc: no logro obtener llaves generadas

Hola a todos!
Es mi primer mensaje a esta lista y obviamente con una pregunta. Espero
no quedar fuera de tema.
Estoy haciendo una aplicacion en java y accedo a la base de datos usando
JDBC, pero necesito ocupar el valor de una llave que fue generada
automaticamente (serial).
En java estoy ocupando el metodo getGeneratedKeys(propia de jdbc) que me
debiera entregar las llaves que se crearon tras las llamada que hago a
una funcion de postgres.
Un extracto del codigo en java es:

String stringConsulta = "select ingresarVoucherEntrada(?,?,?,?)";
CallableStatement consulta = conexion.prepareCall(stringConsulta);
java.sql.Date fechaSql = new Date(fechaemision.getTime());
consulta.setInt(1, idempleado);
consulta.setInt(2, idproveedor);
consulta.setDate(3, fechaSql);
consulta.setInt(4, documentoAsociado);
consulta.executeQuery();

llaveGenerada = consulta.getGeneratedKeys();
if (llaveGenerada.next()){
int key = llaveGenerada.getInt(1);
System.out.println("llaves: "+key);
}
else{
System.err.println("No tengo una llave!.");
}

Y obviamente siempre esta entran al else.

La funcion que tengo en postgres es;

CREATE OR REPLACE function ingresarVoucherEntrada( _idEmpleado "int4",
_idProveedor "int4", _fechaEmision"date", _documentoAsociado"int4")
returns void as $$

BEGIN
insert into voucherEntrada (idEmpleado, idProveedor, fechaEmision,
docuementoasociado)
values (_idEmpleado, _idProveedor, _fechaEmision,_documentoAsociado)
;
END
$$LANGUAGE 'plpgsql' VOLATILE;

Estoy haciendo algo mal con el metodo getGeneratedKeys? Tiene algo malo
la funcion que hice en postgres? Existe otra manera de obtener las
llaves que se generaron automaticamente?


Muchas gracias por los comentarios.
--
visita mi weblog!
http://trasto.hopto.org/weblog
softwarelibre@diinf
http://softwarelibre.diinf.usach.cl

Re: [GENERAL] when to reindex?

On Sat, Jun 7, 2008 at 8:07 PM, Jeremy Harris <jgh@wizmail.org> wrote:
Gregory Stark wrote:
 REINDEX scans the table
precisely once and sorts it.

For the bloat, as opposed to corruption, case -
what information is needed from the table that
is not in the old index?  Why would a sequential
read of the old index alone (then some processing)
not suffice?

In Postgres, an index does not hold the livliness information of the rows it is pointing it; that is, there may be a thousand row-pointers in the index, but not all the rows pointed to by those pointers are known to be live. This is an implication of MVCC in Postgres.

So every index lookup has to look at the corresponding heap (aka table) row and decide if that row should be visible to the querying session.

Best regards,

--
gurjeet[.singh]@EnterpriseDB.com
singh.gurjeet@{ gmail | hotmail | indiatimes | yahoo }.com

EnterpriseDB http://www.enterprisedb.com

Mail sent from my BlackLaptop device

Re: [pgsql-es-ayuda] Procedure para actualizar secuencias

--------------------------------------------------
From: "Marcos Saldivar" <baron.rojo.cuerdas.de.acero@gmail.com>
Sent: Sunday, June 08, 2008 4:23 PM
To: "Raúl Andrés Duque Murillo" <ra_duque@yahoo.com.mx>
Cc: <pgsql-es-ayuda@postgresql.org>
Subject: Re: [pgsql-es-ayuda] Procedure para actualizar secuencias

> El día 8 de junio de 2008 1:41, Raúl Andrés Duque Murillo
> <ra_duque@yahoo.com.mx> escribió:
>> Cordial Saludo.
>>
>> Estoy pensando en hacer un procedure que actualice TODAS las secuencias a
>> los max(id_table) de las tablas correspondientes (para evitarme hacer
>> setvals de cada secuencia), lógicamente este procedimiento sólo lo
>
> pero no se supone esto siempre es así, a menos que asignes al campo un
> valor arbitrario y no un default ???
>

Exactamente ... cuando se hace el precargue se le asigna un valor y no se
usa el default, por lo que no se actualiza la secuencia. Esto es especifico
de la forma como realizó el precargue.ñ

Otra situación es que hago una serie de deletes y me debo quedar con el
max(id_table) de los que queden, yo sé que no es extrictamente necesario
pero es más por control y si puedo abarcar todas las situaciones con la
ejecucción de un Sp, mucho mejor.

Atentamente,

RAUL DUQUE
Bogotá, Colombia


>> utilizaría en el momento de inicializar la DB para una nueva instalación
>> ya
>> que algunas tablas tienen algunos datos "quemados" y estando fuera de
>> producción. Cómo creo que es una necesidad que pudieron tener algunos
>> compañeros en el pasado, de pronto ya alguien hizo este procedure y
>> quisiera
>> compartirlo.
>>
>> Agradezco su colaboración.
>>
>> Atentamente,
>>
>> RAUL DUQUE
>> Bogotá, Colombiaq
>
> __________ Information from ESET Smart Security, version of virus
> signature database 3165 (20080606) __________
>
> The message was checked by ESET Smart Security.
>
> http://www.eset.com
>
>
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

Saturday, June 7, 2008

Re: [GENERAL] temporarily deactivate an index

On Sat, Jun 7, 2008 at 5:16 PM, Viktor Rosenfeld
<rosenfel@informatik.hu-berlin.de> wrote:
> Hi Scott,
>
> Am 07.06.2008 um 16:53 schrieb Scott Marlowe:
>>>
>>> I'm experimenting with different indexes to speed up my queries and I was
>>> wondering if it is possible to temporarily deactivate an index, so it
>>> won't
>>> be considered in the evaluation of query plans. The reason is that
>>> dropping
>>> and then rebuilding an index takes up time which I would rather not wait.
>>>
>>> I couldn't find a command to do that, but I'm guessing that it should be
>>> possible by manipulating a structure in the catalog?
>>
>> Try this:
>>
>> begin;
>> drop indexname;
>> explain analyze select ...;
>> rollback;
>
> That works, but I'm still looking for another way to deactivate the index.
> The reason being, that my query load is randomly generated by a Java
> program and I don't want to go and change the SQL compiler.

Sorry, I'm out of ideas. I mean, you can turn off all indexes with
set enable_indexscan=off but there's no other way to do it cheaply and
in such a fine grained way.

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: [PERFORM] Optimizing AGE()

On Fri, Jun 6, 2008 at 7:20 AM, Volkan YAZICI <yazicivo@ttmail.com> wrote:
> Hi,
>
> Am I wrong or AGE() always gets directed to a sequential scan?
>
> # BEGIN;
> ] SET enable_seqscan TO off;
> ] EXPLAIN ANALYZE
> ] SELECT count(1)
> ] FROM incomingmessageslog
> ] WHERE AGE(time) < '1 year';
> ] ROLLBACK;
> BEGIN
> SET
> QUERY PLAN
> ----------------------------------------------------------------------------------------------------------------------------------------
> Aggregate (cost=100000528.33..100000528.34 rows=1 width=0) (actual time=13.789..13.790 rows=1 loops=1)
> -> Seq Scan on incomingmessageslog (cost=100000000.00..100000520.00 rows=3333 width=0) (actual time=13.783..13.783 rows=0 loops=1)
> Filter: (age((('now'::text)::date)::timestamp without time zone, "time") < '1 year'::interval)
> Total runtime: 13.852 ms
> (4 rows)
>
> ROLLBACK
>
> As far as I know, AGE() can take advantage of a very simple equation for
> constant comparisons:
>
> = AGE(field) < constant_criteria
> = AGE(field, constant_ts) < constant_criteria
> = AGE(field) < constant_criteria + constant_ts
> = AGE(field) < CONSTANT_CRITERIA
>
> How much does such a hack into optimizer cost? I don't know about its
> implications but I'll really appreciate such a functionality. At the
> moment, I'm trying replace every AGE() usage in my code and it really
> feels a PITA.

Yeah, age() isn't real performent in such situations. I generally
stick to simpler date math like:

where timestampvalue < now() - interval '2 year'

which can use an index on timestampvalue

The problem with age is it's always compared to now, so there's always
gonna be some math.

--
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

[pgsql-es-ayuda] Comportamiento work_mem (windows)

Cordial Saludo.
 
Tengo una instalación de postgresql 8.3.1 sobre windows que se va a utilizar básicamente para Análisis de datos (OLAP) por lo tanto quiero optimizarla para este fin.
 
El procedimiento que he seguido es el siguiente:
 
1. Activé el "log_temp_files = 0" para monitorear el uso de archivos temporales. (excelente adición en la 8.3)
2. Mi supuesto es que una DB que este sirviendo para OLAP/DATAWAREHOUSE debe tener un valor de work_mem grande, pocos usuarios y un valor shared_buffers intermedio.
3. Arranque con work_mem = 1MB (valor por defecto), shared_buffers = 128MB y max_conections = 5. Tengo 2GB de memoria.
4. Realizo una consulta que en múltiples ejecuciones demora 27s. (es una consulta con múltiples joins y un order by, típica en OLAP)
5. Reviso el log e identifico que se utilizan VARIOS archivos temporales de cerca de 1.5MB (utilizados para joins) y al final un archivo de 35MB (para el order by).
6. Subo el work_mem = 5MB
7. Ejecuto de nuevo la consulta, y efectivamente se ha eliminado el uso de los archivos temporales de aprox. 1.5MB, pero sigue usándose el de 35MB. Vamos bien !!!
8. Subo el work_mem = 50MB
9. Ejecuto la consulta MULTIPLES VECES y SIGUE utilizándose el archivo temporal de 35MB pero creció el tiempo en 2s !!!
10. Sé que los 35MB se utilizan para el order by por que si lo quito ya no se usa ese archivo temporal.
11. Vuelvo a work_mem = 5MB y vuelvo a optener los valores de 2s por debajo.
 
Cual podría ser la razón de este comportamiento?
Estoy SEGURO que durante la consulta NO se esta utilizando memoria en disco por parte del SO, que sería una posible explicación de la lentitud.
 
Agradezco su colaboración.
 
Atentamente,
 
RAUL DUQUE
Bogotá, Colombia
 
 

[pgsql-es-ayuda] Procedure para actualizar secuencias

Cordial Saludo.
 
Estoy pensando en hacer un procedure que actualice TODAS las secuencias a los max(id_table) de las tablas correspondientes (para evitarme hacer setvals de cada secuencia), lógicamente este procedimiento sólo lo utilizaría en el momento de inicializar la DB para una nueva instalación ya que algunas tablas tienen algunos datos "quemados" y estando fuera de producción. Cómo creo que es una necesidad que pudieron tener algunos compañeros en el pasado, de pronto ya alguien hizo este procedure y quisiera compartirlo.
 
Agradezco su colaboración.
 
Atentamente,
 
RAUL DUQUE
Bogotá, Colombiaq 

Re: [HACKERS] TODO, FAQs to Wiki?

Actually, now that I try it, it seems that the MediaWiki markup is not
completely helpful here -- right now, on some items we have a one-line
"header" and then possibly a longer description, and it seems the only
way to do that in MediaWiki is like this:

* Set proper permissions on non-system schemas during db creation<br> Currently all schemas are owned by the super-user because they are copied from the template1 database. However, since all objects are inherited from the template database, it is not clear that setting schemas to the db owner is correct.

Note the dumb <br> thing in the middle.

Personally I find that ugly enough as to be unacceptable; what do others
think?

--
Alvaro Herrera

http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Re: [PATCHES] [HACKERS] TRUNCATE TABLE with IDENTITY

Tom Lane wrote:

> 2. I had first dismissed Neil's idea of transactional sequence updates
> as impossible, but on second look it could be done. Suppose RESTART
> IDENTITY does this for each sequence;
>
> * obtain AccessExclusiveLock;
> * assign a new relfilenode;
> * insert a sequence row with all parameters copied except
> last_value copies start_value;
> * hold AccessExclusiveLock till commit.

Hmm, this kills the idea of moving sequence data to a single
non-transactional catalog :-(

> So what I think we should do is leave the patch there, revise the
> warning per Neil's complaint, and add a TODO item to reimplement RESTART
> IDENTITY transactionally.

I think the TODO item did not make it, but the docs do seem updated.

--
Alvaro Herrera

http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

--
Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-patches

Re: [pgsql-es-ayuda] Instalacion 8.3 y 8.2 en Windows XP

2008/6/7 Terry Yapt <yapt@technovell.com>:
> Hola a todos,
>
> he instalado 8.3 en win32 para un proyecto que tengo que realizar. Para
> ello, utilizo PostgresDAC (de MicroOlap), pero creo que, todavia, existe
> algún problema con la versión 8.3.1. Así que les he reportado el problema y
> voy a intentar, mientras lo solucionan, seguir preparando todo con la
> versión 8.2.7.
>
> El caso es que, en el mismo sistema donde estaba instalada la versión 8.3.1,
> intento instalar la versión 8.2.7 y nada. Cuando el servicio (win32) se va
> a iniciar, arroja un error de que el usuario no tiene permisos para iniciar
> servicios. Esto es falso, pues el usuario tiene esos permisos (los pone el
> instalador, PgInstaller, pero los he comprobado yo manualmente).
> Si intentas arrancar el servicio manualmente, entonces arroja un error 1068
> (de microsoft). El caso es que no puedo instalar postgreSQL en esta
> máquina.
>

podrias mostrar el error que registra el eventlog? si se esta grabando
algo en el log de postgres podriamos verlo tambien?

--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Guayaquil - Ecuador
Cel. (593) 87171157
--
TIP 4: No hagas 'kill -9' a postmaster

Re: [HACKERS] math error or rounding problem Money type

Justin wrote:
> yes. The question is why are the to sides not equal anymore
>
> Take this
>
> Select
> '2',
> round(sum( beginBalance ),6) as beginbalance,
> round(sum( negative ),6) as debit,
> round(sum( positive ),6) as credit,
> round(sum( difference ),6) as difference,
> round(sum( endbalance),6) as endbalance
> from trailbalance
> union
> Select
> '1',
> sum( round(beginBalance,6)) as beginbalance,
> sum( round(negative,6)) as debit,
> sum( round(positive,6)) as credit,
> sum( round(difference,6)) as difference,
> sum( round(endbalance,6)) as endbalance
> from trailbalance
>
> "1" -0.000006 -11250546.743752 11250546.743752 0.000000
> -0.000007
> "2" 0.000000 -11250546.743752 11250546.743752 0.000000
> 0.000000
>
> At the very least this show a clear warning when rounding do it after
> all the sum function is called not before.
>

IFAIK (dimly recalling numerical analysis courses at university) SUM and
ROUND can *never* be commuted. In general the recommended approach is to
round as late as possible and as few times are possible - so your 1st
query is the correct or best way to go.

Cheers

Mark

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

RE: [pgsql-es-ayuda] llamar a funcion

UIhmmm, tendriamos que entrar en la discusion de que si una estructura compuesta es UNO o VARIOS.
Eso me recuerda una vieja discusion de struct en C y records en Pascal.
Donde el struct lo podia enviar en un return y todo bien , en C mientras en Pasacal no podia enviar el record.
Cual seria el valor correcto?

*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-849-8087

* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
*-------------------------------------------------------*


> Date: Sat, 7 Jun 2008 12:34:38 -0500
> From: systemguards@gmail.com
> To: listas_quijada@hotmail.com
> Subject: Re: [pgsql-es-ayuda] llamar a funcion
> CC: gergonvel@hotmail.com; luis.a.guevara@gmail.com; pgsql-es-ayuda@postgresql.org
>
> 2008/6/7 Edwin Quijada :
>>
>> Las funciones no retornan mas de un valor.
>>
>
> imagino que esto es relativo...
> Pero en la practica las funciones SI retornan mas de un valor, a
> traves de records
>
>
> --
> Atentamente,
> Jaime Casanova
> Soporte y capacitación de PostgreSQL
> Guayaquil - Ecuador
> Cel. (593) 87171157

_________________________________________________________________
Do more with your photos with Windows Live Photo Gallery.
http://www.windowslive.com/share.html?ocid=TXT_TAGLM_Wave2_photos_022008--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Re: [GENERAL] temporarily deactivate an index

Hi Scott,

Am 07.06.2008 um 16:53 schrieb Scott Marlowe:
>> I'm experimenting with different indexes to speed up my queries and
>> I was
>> wondering if it is possible to temporarily deactivate an index, so
>> it won't
>> be considered in the evaluation of query plans. The reason is that
>> dropping
>> and then rebuilding an index takes up time which I would rather not
>> wait.
>>
>> I couldn't find a command to do that, but I'm guessing that it
>> should be
>> possible by manipulating a structure in the catalog?
>
> Try this:
>
> begin;
> drop indexname;
> explain analyze select ...;
> rollback;

That works, but I'm still looking for another way to deactivate the
index. The reason being, that my query load is randomly generated by
a Java program and I don't want to go and change the SQL compiler.

Cheers,
Viktor

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[GENERAL] fitler database list

Is it a way to filter the database list on the tables containt in the
database ?

Thanks.

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: [GENERAL] IN vs EXISTS

> -----Original Message-----
>
> Hi all,
>
> I have been using IN clause almost exclusively until recently I tried
> to use EXISTS and gained significant performance increase without
> changing/creating any indexes:
>
> SELECT ... FROM a WHERE a.ref IN (SELECT b.id WHERE ...)
>
> vs
>
> SELECT ... FROM a WHERE EXISTS (SELECT 1 FROM b WHERE a.ref=b.id ...)
>
> Performance is at least few times better when EXISTS is used. Is it
> just PostgreSQL specific?
>

IN should produce a different query plan than EXISTS. (You can run
"explain analyze" on your queries, to see the different plans).
Which one is faster depends on your data, and on your server. Also,
what's faster on one dbms my be different than another. I've found
that postgresql is usually slower than other databases for IN ()
queries, but handles EXISTS and inner joins (a third way of writing
your queries above) quite quickly.

SELECT a.foo
FROM a
INNER JOIN b on a.ref=b.id

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: [GENERAL] hopefully a brain teaser, can't quite figure out query

> -----Original Message-----
> The small table is a listing of county fips codes, their name, and the
> geometry for the county. Each fips is only listed once. The big table
> is multiple emissions for each county, the parameter for the emission,
> and the source code for the emission (scc). Each county in big tbale
> has many entries, variable number of pollutant types, variable number
> of scc's.
>
>
> SELECT small.fips, small.name, sum(big.value)
> FROM small, big
> WHERE
> small.fips in (
> SELECT fips from big
> WHERE ((pollutant='co') AND
> (
> (scc LIKE '21%') OR (scc LIKE '2301%') OR (scc LIKE '2801000000%')
> )
> HAVING SUM(value > 2000)
> )
> GROUP BY small.fips, small.name;
>
> This is the query that isn't returning yet.
> If anyone has any questions, comments, or any suggestions at all, I'll
> do my best to respond ASAP.

This sounds like what you want:

SELECT small.fips, small.name, sum(big.value) as big_sum
FROM small
INNER JOIN big on small.fips = big.fips
WHERE pollutant = 'co'
AND (scc LIKE '21%' OR scc LIKE '2301%' OR scc LIKE '2801000000%')
GROUP BY small.fips, small.name

However, I'm not sure I understand this part:

> I would return the 123 fips ONLY if the value provided was less
> than the sum of the values for all scc's (500+550+1500+50 = 2600),
> as well as the sum for those values.

Can you clarify?

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: [pgsql-www] Ask for Help on Improving the FreeBSD FAQ

Gabor PALI wrote:
> - whether you do have any project-specific modifications for DocBook
> - what other tools you do use for creating documentation

Most of our documentation building technology was actually inspired and/or
copied from the FreeBSD project. So I think chances are low you will find
anything here that you don't already have. The integration with the web site
and so on are different, but other people have already commented on that.

I suggest you take a look at the code (Makefile and so on) in doc/src/sgml.

--
Sent via pgsql-www mailing list (pgsql-www@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-www

Re: [GENERAL] Extracting data from deprecated MONEY fields

Hi,

Tino Wildenhain wrote:
> Hi,
>
> Shane Ambler wrote:
> ...
>> I think the steps Joshua is referring to are -
>>
>> 1. pg_dump -t mytable_with_money mydb > mytable_backup.sql
>> 2. edit table definition in backup file to use numeric
>> 3. remove $ and , from money column data
>> 4. DROP TABLE mytable_with_money
>> 5. psql < mytable_backup.sql
>>
>> While the data is in a text file regex tasks to remove the money
>> formatting become a lot simpler.
>
> to_char() and back to numeric shouldn't be a problem within the database
> and we have regex too if anything fails. I don't think you need to
> dump and edit the dump to achive that.

Ah sorry forget that... neither to_char nor cast to text works. Really a
horrible datatype :(

Tino

Re: [GENERAL] FW: make rows unique across db's without UUIP on windows?

Bill, thanks, that made me think a while.

But doesn't that just push the problem up the chain a notch?

Adding a table id makes the row unique in the database but not beyond.

Then you add a database id to the table/row id and you are unique across
databases?

But can you be universally unique without being universal?

I thought I needed to have an id that would mark any column that comes from
that row with its unique origin row.

With a GUID I'm pretty much home.

But no series of semi-unique keys will ever become as unique as a GUID, will
it? That is, until you add a service id to the database id and a server id
to the service id and a rack id to the server id and a floor id to the rack
id and a bldg id to the floor id and so forth up the chain until you get 64
values in your multi-valued index. And then also make sure none of the
combinations of 64 values repeats anywhere in your global enterprise.

At that point everyone using a system that doesn't have a GUID type changes
the subject and asks, 'you sure you need that?'

But I don't have to need it so much if I've got it. All I have to need it is
a little and I can use it. Then if I need it more later, I've already got
it.

It's only when I don't have it that people say, 'you sure you need it?'

Know what I mean?

Thanks,

Kimball

-----Original Message-----
From: Bill Moran [mailto:wmoran@collaborativefusion.com]
Sent: Tuesday, June 03, 2008 5:57 AM
To: kjohnson@voiceandnetworksystems.com
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] FW: make rows unique across db's without UUIP on
windows?

In response to "Kimball Johnson" <kjohnson@voiceandnetworksystems.com>:
>
> What is the normal solution in pgsql-land for making a serious number of
> rows unique across multiple databases?
>
>
>
> I mean particularly databases of different types (every type) used at
> various places (everywhere) on all platforms (even MS[TM])? You know. a
> UNIVERSAL id?

Just give each separate system it's own unique identifier and a sequence
to append to it.

--
Bill Moran
Collaborative Fusion Inc.
http://people.collaborativefusion.com/~wmoran/

wmoran@collaborativefusion.com
Phone: 412-422-3463x4023


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: [GENERAL] Extracting data from deprecated MONEY fields

Hi,

Shane Ambler wrote:
...
> I think the steps Joshua is referring to are -
>
> 1. pg_dump -t mytable_with_money mydb > mytable_backup.sql
> 2. edit table definition in backup file to use numeric
> 3. remove $ and , from money column data
> 4. DROP TABLE mytable_with_money
> 5. psql < mytable_backup.sql
>
> While the data is in a text file regex tasks to remove the money
> formatting become a lot simpler.

to_char() and back to numeric shouldn't be a problem within the database
and we have regex too if anything fails. I don't think you need to
dump and edit the dump to achive that.

Regards
Tino

[BUGS] BUG #4229: Page header error

The following bug has been logged online:

Bug reference: 4229
Logged by: Valeriy
Email address: tester080606@rambler.ru
PostgreSQL version: 7.4.5
Operating system: Linux 2.6.17
Description: Page header error
Details:

We have PostgreSQL v. 7.4.5 and main application
working with PGSQL via libpq. Linux 2.6.17.

Page header error periodically occurs when
main application is working hard.
We repair it automatically using restore
from night dump, no problems.

There are some servers (among more than 20)
that are loaded much less, so this error doesn't occur at all.

Can we assume that this error is connected with
high load of hardware only?

I suppose that the upgrade up to version 8.x
will not exclude this error.

Thank You
Valeriy

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

[BUGS] Page header error in 8.x ?

We have PostgreSQL v. 7.4.5 and main application working with PGSQL via libpq.
 
Page header error periodically occurs when main application is working hard.
We repair it automatically using restore from night dump, no problems.
 
There are some servers (among more than 20)
that are loaded much less, so this error doesn't occur at all.
 
Can we assume that this error is connected with high load of hardware only?
I suppose that  the upgrade up to version 8.x will not exclude this error.
 
Thank You
Valeriy

Re: [GENERAL] strpos NOT doing what I'd expect

On Jun 7, 2008, at 2:58 AM, Ralph Smith wrote:

> CODE:
> ===============================
> CREATE OR REPLACE FUNCTION find_next_delim(invar varchar, delimlist
> varchar) RETURNS integer AS
> $$
>
> /* OVERLOADED Function. The other version takes a 3rd parameter
> as the
> starting position in invar.
> */
>
> DECLARE
>
> achar character := '' ;

It's because you're using character here instead of text. Character
collapses whitespace (it's usually used as char(<some length>). To
demonstrate:

development=> select ''''||CAST (' '::character AS text)||'''';
?column?
----------
''

So your comparison becomes:
development=> SELECT strpos('3', '');
strpos
--------
1

Now that's got to be a corner case of the use of strpos, I'm not
entirely sure that'd be the right behaviour, but if it isn't, what
would be? Does a non-empty string contain empty strings? And if so,
is it at position 1? The character at position 1 is actually '3'
after all... Maybe it should return NULL (unknown) or raise an error?

When using text instead of character, your function works as expected.

> j int := 0 ;
>
> BEGIN
>
> IF length(delimlist) = 0 THEN
> RAISE NOTICE 'In function \'find_next_delim\' the delimiter
> cannot be null.' ;

An empty string is not null. If someone would actually enter NULL for
delimlist your function would break:

development=> select find_next_delim(NULL,'3') ;
ERROR: upper bound of FOR loop cannot be NULL
CONTEXT: PL/pgSQL function "find_next_delim" line 18 at FOR with
integer loop variable


> END IF ;
>
>
> FOR i IN 1 .. length(invar)
> LOOP
>
> j := j + 1 ;
> achar := substring(invar from i for 1 ) ;
> RAISE NOTICE 'achar is R%S',achar ;
> IF strpos(delimlist,achar) <> 0 THEN
> RETURN j ;
> END IF ;
>
> END LOOP ;
>
> RETURN 0 ;
>
> END ;
> $$ LANGUAGE plpgsql ; /* find_next_delim */
>
>
>
>
> WHAT'S HAPPENING:
> ===============================
> airburst=# select find_next_delim('ralph smith','3') ;
>
> NOTICE: achar is RrS
> NOTICE: achar is RaS
> NOTICE: achar is RlS
> NOTICE: achar is RpS
> NOTICE: achar is RhS
> NOTICE: achar is R S
> find_next_delim
> -----------------
> 6
> (1 row)
>
>
> airburst=# select find_next_delim('ralph smith','') ; -- for the
> heck of it, that's a null
>
> NOTICE: In function 'find_next_delim' the delimiter cannot be null.
> NOTICE: achar is RrS
> NOTICE: achar is RaS
> NOTICE: achar is RlS
> NOTICE: achar is RpS
> NOTICE: achar is RhS
> NOTICE: achar is R S
> find_next_delim
> -----------------
> 6
> (1 row)
>
> WHY find a match on the space???
>
> Thanks!
>
>

Alban Hertroys

--
If you can't see the forest for the trees,
cut the trees and you'll see there is no forest.


!DSPAM:737,484a5f1e927662100280104!

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: [pgadmin-support] pgAdmin 1.8.x hangs while tries to load XRC resources

On Sat, Jun 7, 2008 at 10:32 AM, Antonello Biancalana
<promindsd@gmail.com> wrote:
> Dave Page wrote:
>>
>> On Sat, Jun 7, 2008 at 9:35 AM, Antonello Biancalana
>> <promindsd@gmail.com> wrote:
>> Not offhand. Does the wxWidgets XRC sample work?
>
> Thank you for your reply and your help. Your suggestion was of terrific help
> to me. I compiled and run the wxWidgets XRC sample and it worked but it
> complained about some missing files (whereas pgadmin did not).
> The XRC sample complained about the following missing files in my system:
>
> usr/share/mimelnk/application/vnd.adobe.pdx.desktop
> usr/share/mimelnk/application/vnd.adobe.xdp+xml.desktop
> usr/share/mimelnk/application/vnd.adobe.xfdf.desktop
> usr/share/mimelnk/application/vnd.fdf.desktop
>
> which actually resulted to be missing links belonging to an old installation
> of Adobe Acrobat Reader 7. I deleted these missing links and now pgAdmin
> works.
> I hope this can help other pgAdmin users. Maybe it would be nice if pgAdmin
> would warn the user in case of these missing files like wxWidgtes XRC sample
> does.

Oh wow - I have no idea why those should break wxWidgets, but I wonder
if building wxWidgets with --enable-mimetype=no would have made any
difference.

Anyway, glad it's working now.

>
> Thank you very much indeed Dave for your support and help!

You're welcome.

--
Dave Page
EnterpriseDB UK:

http://www.enterprisedb.com

--
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support

Re: [pgadmin-support] pgAdmin 1.8.x hangs while tries to load XRC resources

Dave Page wrote:
> On Sat, Jun 7, 2008 at 9:35 AM, Antonello Biancalana
> <promindsd@gmail.com> wrote:
>
> Not offhand. Does the wxWidgets XRC sample work?

Thank you for your reply and your help. Your suggestion was of terrific
help to me. I compiled and run the wxWidgets XRC sample and it worked
but it complained about some missing files (whereas pgadmin did not).
The XRC sample complained about the following missing files in my system:

usr/share/mimelnk/application/vnd.adobe.pdx.desktop
usr/share/mimelnk/application/vnd.adobe.xdp+xml.desktop
usr/share/mimelnk/application/vnd.adobe.xfdf.desktop
usr/share/mimelnk/application/vnd.fdf.desktop

which actually resulted to be missing links belonging to an old
installation of Adobe Acrobat Reader 7. I deleted these missing links
and now pgAdmin works.
I hope this can help other pgAdmin users. Maybe it would be nice if
pgAdmin would warn the user in case of these missing files like
wxWidgtes XRC sample does.

Thank you very much indeed Dave for your support and help!

--

Antonello Biancalana
ProMIND software development - Perugia (ITALY)
e-mail: promindsd@gmail.com
skype: antonello.biancalana

PGP key ID: D40B3BC3
PGP key fp: AC62 7264 4233 5ADD 5ADA D4D3 9B35 6051 D40B 3BC3


--
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support

Re: [pgadmin-support] pgAdmin 1.8.x hangs while tries to load XRC resources

On Sat, Jun 7, 2008 at 9:35 AM, Antonello Biancalana
<promindsd@gmail.com> wrote:
> I have a problem in getting pgAdmin3 working since the 1.8.x series.
> I usually build pgAdmin from source (however also the binary releases give
> me the same problem) and whenever I try to run pgAdmin it shows the splash
> screen and then it always hangs. After having traced the exact point of
> hanging, I noticed it always hangs at file pgadmin/ui/xrcDialogs.cpp line
> 13760 (1.8.4 version) at the point of the first wxXmlResource::Get()->Load
> call.
> I also tried to disable EMBED_XRC define and to copy all the XRC files to
> [uiPath] with no success. I am currently using wxGTK 2.8.7 and all the other
> requirements (in particular libxml2, ver. 2.6.32) seem to be right. By the
> way: I am using Linux (Fedora 9). No problem if I use pgAdmin 1.6.3: it
> complies and runs smoothly and with no problem. I am having this problem
> since the release of pgAdmin 1.8.0
> Do you have any idea of what the problem can be?

Not offhand. Does the wxWidgets XRC sample work?


--
Dave Page
EnterpriseDB UK: http://www.enterprisedb.com

--
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support

[pgadmin-support] pgAdmin 1.8.x hangs while tries to load XRC resources

I have a problem in getting pgAdmin3 working since the 1.8.x series.
I usually build pgAdmin from source (however also the binary releases
give me the same problem) and whenever I try to run pgAdmin it shows the
splash screen and then it always hangs. After having traced the exact
point of hanging, I noticed it always hangs at file
pgadmin/ui/xrcDialogs.cpp line 13760 (1.8.4 version) at the point of the
first wxXmlResource::Get()->Load call.
I also tried to disable EMBED_XRC define and to copy all the XRC files
to [uiPath] with no success. I am currently using wxGTK 2.8.7 and all
the other requirements (in particular libxml2, ver. 2.6.32) seem to be
right. By the way: I am using Linux (Fedora 9). No problem if I use
pgAdmin 1.6.3: it complies and runs smoothly and with no problem. I am
having this problem since the release of pgAdmin 1.8.0
Do you have any idea of what the problem can be?

Thank you for your support and help.

Best regards.

Antonello

Bug report information:

pgAdmin ver 1.8.4
configure with no options
OS: Fedora 9, Linux 2.6.25.4
wxWidgets: wxGTK 2.8.7, configure --with-gtk --enable-gtk2 --enable-unicode
postgreSQL ver 8.3.1, configure with no options


--

Antonello Biancalana
ProMIND software development - Perugia (ITALY)
e-mail: promindsd@gmail.com
skype: antonello.biancalana

PGP key ID: D40B3BC3
PGP key fp: AC62 7264 4233 5ADD 5ADA D4D3 9B35 6051 D40B 3BC3


--
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support

Re: [pgadmin-support] Weird Popup Menus - pgAdmin 1.8.4

On Sat, Jun 7, 2008 at 8:55 AM, Guillaume Lelarge
<guillaume@lelarge.info> wrote:
>
> Actually, I do have the same issue (on the same distro). But I thought *I*
> was doing something wrong :)
>
> So, I need to take a serious look at this.

It's also been noted by our quality management team. I believe it's a
wxWidgets bug but I suspect we may not see a 2.8.8 version so may have
to work round this ourselves*. When we add options to the content
menu, perhaps we should just strip out the &'s (they prefix char that
should be underlined) on GTK - the bug isn't there on Windows/Mac.

* The next major version of wxWidgets is apparently going to be 3.0.0
which will be very different from what I hear, so we may not upgrade
immediately.

--
Dave Page
EnterpriseDB UK: http://www.enterprisedb.com

--
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support

Re: [pgadmin-support] Weird Popup Menus - pgAdmin 1.8.4

Christos Vasilakis a écrit :
> [...]
> Although the application runs fine without any problems, the menus in
> the popups are garbaged with the _ character. I believe its used to
> characterize the shortcut character in the keyboard. For example if i
> right click in a table i get this
>
> Re_fresh
> _Count
> ...
> _Reports
> _Maintenance
>
> etc.
>
> In the top level menus File Edit View.. it is displayed correctly.
>

Actually, I do have the same issue (on the same distro). But I thought
*I* was doing something wrong :)

So, I need to take a serious look at this.


--
Guillaume.

http://www.postgresqlfr.org

http://dalibo.com

--
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support

[pgadmin-support] Connecting from xp to linux server

Hi all,

this is the problem I am facing.

I have PG 8.3 running on a KUBUNTU installation running on a virtual
machine. From inside the virtual machine I can use PGADMIN to manage PG
but when I try to connect from the xp machine I have this error: "Error
connecting to the server:FATAL: missing or erroneous pg_hba.conf file" .

I set the permission in the pg_hba.conf on the server.

The machine talk each oher, I can ping and use telnet on the 5432 port.

The log on the server does not report any problem.

Ideas?

S.

--


Dr. Simone Gadenz

via P. Togliatti 69, 50051

Castelfiorentino (FI)

+39 339 6053660

*INFORMATIVA PRIVACY (ex D.lgs. 196/03)*

Le inormazioni contenute in questo documento e nei relativi allegato

possono essere riservate e sono destinate esclusivamente alla persona

od alla Società indicata come destinatario.

La diffusione e la distribuzione del presente documento a soggetti

diversi da quelli indicati, od in genere qualsivoglia utilizzo illecito

dei dati ivi contenuti, e proibita sia ai sensi dell'art. 616 del

Codice Penale che dal D.Lgs 196/03 in materia di protezione dei dati

personali (Privacy).

Se avete ricevuto per errore questo documento siete pregati di

distruggerlo e di comunicarcelo prontamente tramite e-mail o fax.


--
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support