[SQL] Conversion Problem

2003-11-13 Thread Graham
Apologies as this probably isn't really for this list but...

In postgresql you can execute a statement such as: 

SELECT 1 > 2;

And it would return 'f'

Does anyone know if you can do this in SQL Server as I have to do a
conversion of some prewritten SQL code.

MTIA,

Graham.



---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])


[SQL] sequences in functions

2000-08-18 Thread Graham Vickrage

I am having problems referencing sequeces in a function, I think because of
the '' characters. The function I am creating is a follows: -

CREATE FUNCTION InsertClient ( varchar, varchar, varchar, varchar, varchar,
varchar ) RETURNS int4 AS '
DECLARE
id INT;
BEGIN
SELECT nextval('client_seq') INTO id;

INSERT INTO client (client_id, last_name, address1, country)
VALUES (id, $1, $2, $3);

INSERT INTO client_card (client_card_id, type, number, expiry_date,
client_id)
VALUES (nextval('client_card_seq'), $4, $5, $6, id);

RETURN id;
END;
' LANGUAGE 'plpgsql';


And the error message is

ERROR:  parser: parse error at or near "client_seq"
EOF


Is this because of the ' ' ???

Also can you pass in a array or hash to the function?

Cheers

Graham




RE: [SQL] sequences in functions

2000-08-18 Thread Graham Vickrage

I have noticed that you can only pass 16 parameters to a function, I was
therefore wondering how you can do atomic inserts (such as the function
below but with more params) using pl/pgsql if you can't pass complex data
types. Is this something that transactions are not used for or is it best
done as two seperate calls in my perl scripts?

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf
Of Yury Don
Sent: 18 August 2000 15:07
To: [EMAIL PROTECTED]
Subject: Re: [SQL] sequences in functions


Hello Graham,

Friday, August 18, 2000, 6:24:15 PM, you wrote:

GV> I am having problems referencing sequeces in a function, I think because
of
GV> the '' characters. The function I am creating is a follows: -

GV> CREATE FUNCTION InsertClient ( varchar, varchar, varchar, varchar,
varchar,
GV> varchar ) RETURNS int4 AS '
GV> DECLARE
GV> id INT;
GV> BEGIN
GV> SELECT nextval('client_seq') INTO id;

GV> INSERT INTO client (client_id, last_name, address1, country)
GV> VALUES (id, $1, $2, $3);

GV> INSERT INTO client_card (client_card_id, type, number,
expiry_date,
GV> client_id)
GV> VALUES (nextval('client_card_seq'), $4, $5, $6, id);

GV> RETURN id;
GV> END;
GV> ' LANGUAGE 'plpgsql';


GV> And the error message is

GV> ERROR:  parser: parse error at or near "client_seq"
GV> EOF


GV> Is this because of the ' ' ???

You must to use two quotes:

SELECT nextval(''client_seq'') INTO id;

--
Best regards,
 Yurymailto:[EMAIL PROTECTED]





[SQL] Null function parameters

2000-08-22 Thread Graham Vickrage

Hi All,

I am trying to create a function that takes an int as its param and insert
the value into a table. The problem occurs when the value passed is NULL,
the error message returned is

 - Execute failed ERROR: ExecAppend: Fail to add null value in not null
attribute type

However my understanding was that if the default value is SQL NULL then any
values passed into the function that are null would be treated as 'NULL'.

This doesn't seem to be the case. Chances are I am overlooking something,
could any one point me in the right direction?

Cheers

Graham





RE: [SQL] Using SETOF in plpgsql function

2000-08-23 Thread Graham Vickrage

As far as i know, you can only return single values from functions at the
moment.

Regards

Graham

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf
Of hlefebvre
Sent: 23 August 2000 11:08
To: [EMAIL PROTECTED]
Subject: [SQL] Using SETOF in plpgsql function


Hello,

I'd like to return a set of integer in an pl/pgsql function. How can I
do that ?

I've tried things like that, put I've an error when executing :

CREATE FUNCTION SP_UPLES() RETURNS setof INTEGER AS '
DECLARE ID INTEGER;
BEGIN
select a into id from foo;
return ID ;
END;

CREATE FUNCTION SP_UPLES() RETURNS setof INTEGER AS '
DECLARE ID setof INTEGER;
BEGIN
select a into id from foo;
return ID ;
END;

CREATE FUNCTION SP_UPLES() RETURNS setof INTEGER AS '
BEGIN
select a into id from foo;
return select a from foo;
END;

Any help is welcomed.
Thanks.




RE: [SQL] Null function parameters

2000-08-23 Thread Graham Vickrage

Thanks Anatoly

So if I understand you correctly you can't pass more than one NULL int into
a function?

Therefore Newbe DBA type question: -
Is this a shortcoming in postgres or is it to be expected when dealing with
transactions?
If it is a shotcoming are there any plans to include it in future releases?

Regards

Graham

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On
Behalf Of Anatoly K. Lasareff
Sent: 23 August 2000 12:46
To: Tom Lane
Cc: Graham Vickrage; postgresql
Subject: Re: [SQL] Null function parameters


>>>>> "TL" == Tom Lane <[EMAIL PROTECTED]> writes:

 TL> "Graham Vickrage" <[EMAIL PROTECTED]> writes:
 >> However my understanding was that if the default value is SQL NULL then
any
 >> values passed into the function that are null would be treated as
'NULL'.

 TL> Not sure what you think you meant by that, but a null is a null.  If
you
 TL> declared the table column as NOT NULL then Postgres is doing exactly
 TL> what it should.  You may wish to code the insert along the lines of

 TL> INSERT INTO table VALUES (..., COALESCE($1, suitable-default), ...)

 TL> COALESCE is a handy notation for "value1 unless it's NULL, in which
case
 TL> value2".

 TL> regards, tom lane

But unfortunately we have no answer for primary question:

| Why if we pass to function ONLY ONE null agument all the oters|
| argumenta in function's boby are null too?|
| Or: is it possible to pass null arguments into plpgsql functions? |

Example.

create function a(int, int) returns int as '
begin
  raise notice ''1: % 2: %'', $1, $2;

  if $1 is null then
return $2;
  end if;

  return $1;
end;
' language 'plpgsql';

tolik=# select a(1,2);
NOTICE:  1: 1 2: 2
 a
---
 1
(1 row)

tolik=# select a(null,2);
NOTICE:  1:  2: 
 a
---

(1 row)


--
Anatoly K. Lasareff  Email:   [EMAIL PROTECTED]




[SQL] Return from stored procedures

2000-11-10 Thread Graham Vickrage

Probably a very simple question, but how do you define a function that
returns the sucess of an insert or update in a function i.e.

CREATE FUNCTION foo ( varchar, int8 ) RETURNS bool
AS 'UPDATE table WHERE something'
LANGUAGE 'sql';

Cheers

Graham




[SQL] Trigger cant find function

2000-11-14 Thread Graham Vickrage

I seem to be having difficulty creating a trigger. I have creted the
function and tested it which seems to work fine: -

CREATE FUNCTION get_prod_cost_price (varchar, int8) RETURNS float AS '
DECLARE
cost FLOAT;
BEGIN
SELECT cost_price INTO cost FROM product WHERE code = $1;

IF FOUND THEN
UPDATE order_detail SET cost_price = cost WHERE order_detail_id=$2;
RETURN cost;
END IF;
RETURN 0;
END;
' LANGUAGE 'plpgsql';

dvd=> select get_prod_cost_price ('DVD368', 10027);
get_prod_cost_price
---
   9.81
(1 row)



Now I try and create the approprate trigger and I get the following:-

CREATE TRIGGER tg_update_order_detail AFTER insert
ON order_detail FOR EACH ROW
EXECUTE PROCEDURE get_prod_cost_price('product_id', 'order_detail_id');

ERROR:  CreateTrigger: function get_prod_cost_price() does not exist

It is clear that it does exist so why does the trigger creation code not
find it?

Thanks in advance for any pointers.

Graham




[SQL] Use of indexes in plpgsql functions

2000-12-15 Thread Graham Vickrage


> I have a table with 650k rows with an index on URL (pg v7.0.0 on
> i686-pc-linux-gnu)
> 
> When using psql the select query behaves as expected i.e. takes < 1 second
> (and explain tells me it is using the correct index)
> 
> However when I put this into a pl function it takes about 2.5 mins, Has
> anyone had any similar problems/solutions or is it just that I am over
> looking something??? (I know there is an update but again when executed
> seperately it takes approx 1 sec)
> 
> Regards 
> 
> Graham
> 
> details as follows: -
> 
> SELECT now(); SELECT count(*) FROM statistics WHERE url ='XXX' and
> website_id =1035; SELECT now();
> 
> now
> --
> 2000-12-15 19:17:34+00
> 
> count
> -
> 421
> (1 row)
> 
> now
> --
> 2000-12-15 19:17:35+00
> (1 row)
> 
> CREATE FUNCTION get_url_hits (varchar, int4) RETURNS int4 AS '
> DECLARE
>   num INT4;
> BEGIN
>   SELECT count(*) INTO num FROM statistics WHERE url = $1 and
> website_id = $2;
>   
>   IF num > 0 THEN
>   UPDATE site_url SET hits = num, last_updated = now() where
> website_id = $2 and url = $1;
>   END IF;
> RETURN num;
> END;' LANGUAGE 'plpgsql';
> 
> select now(); select get_url_hits ('XXX', 1001); select now(); 
> 
> now
> --
> 2000-12-15 19:21:40+00
> (1 row)
> 
> get_url_hits
> 
>   421
> (1 row)
> 
> now
> --
> 2000-12-15 19:24:06+00
> (1 row)
> 
> 
> 
> 
> 
> 

 winmail.dat


[SQL] psql -f option

2001-01-04 Thread Graham Vickrage

I am trying to use the psql -f  option to load a script into the
DB ( v7.0 ) from the linux command line. 

The documentation says -f enables some nice features such as error messages
with line numbers. It seems to me that this is half true i.e. it shows me
error messages, its doesn't however give me the associated line number in
the script. This would be a very useful feature for me as my scripts can be
very long.

Is there a configuration option i am missing?

Thanx in advance

Graham

 winmail.dat


[SQL] grouping by date increments

2001-01-23 Thread Graham Vickrage

I am trying to write a select statement to count the occurences of a
particular string between a set of dates.

I have written this successfully but need to get the count in time
increments such as per day/week/month.

At the moment I am doing a select for each increment seperately but figure
that as its doing a seqential scan then it may be possible to do it all at
once. 

Has anyone done anything similar that or maybe could recommend a more
efficient solution.

Thanks

Graham

current select:

SELECT to_char(timestamp('01-Jun-2000'), 'DD-Mon-'),
to_char(timestamp('01-Aug-2000'), 'DD-Mon-'), count(*) FROM table WHERE
date >= timestamp('01-Jun-2000') AND date < timestamp('01-Aug-2000') AND
text = 'FOOBAR';

 winmail.dat


[SQL] Killing Postmaster

2001-03-28 Thread Graham Vickrage

Hi All,

What is the correct way of killing postgres 7.0 on redhat linux.

Is there a reason why vacuum hangs on a DB with about 1.5 million rows?

Cheers 

Graham

 winmail.dat


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

http://www.postgresql.org/search.mpl



[SQL] Update taking forever

2001-03-29 Thread Graham Vickrage

I am trying to do an update on column in a table with 1.5 millions rows.

The SQL is as follows, I am also putting it in a transaction in case things
go wrong.

begin;
update statistics set parameters = NULL where parameters ='';

An explain produces the following: -
Seq Scan on statistics  (cost=0.00..56174.49 rows=14976 width=88)

Would anyone be able to tell me why it is seemingly infinite, i'm running
linux, postgres v7.0

Cheers 

Graham

 winmail.dat


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



[SQL] Strategy for unlocking query

2001-04-04 Thread Graham Vickrage

I have just done a rather large transaction via a telnet/psql session which
executed OK. The problem occured when the telnet session timed out before I
could commit the rows.

This must have locked the rows in question because when I tried to vacuum
the table it just hung.

What is the best way of dealing with this problem as I ended up stopping and
restarting the postmaster?

Also are functions within functions dealt with in a 'transactional' sense?

Cheers

Graham

 winmail.dat


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

http://www.postgresql.org/search.mpl



[SQL] Group by date_part

2001-07-10 Thread Graham Vickrage

Hi,

I need to select the amount of orders per day from an order table.

The statement I have only selects the count if there is at least 1 order for
a particular day, which make sense.

I however need a count of 0 for days that don't have any. Can anyone help?

SQL:

SELECT date_part('day', date), count(*)
FROM client_order WHERE (date >= '01/05/01' AND date < '01/06/01') AND
status = 'Processing'
GROUP BY date_part('day', date);


---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]



[SQL] Re: Adding an INTERVAL to a variable

2001-08-09 Thread Graham Coates

Thanks for the inspiration Vivek!
Didn't quite work, but when I made it...
dSalesHdrDateDue + (iAcctPayDaysAv || 'Days')::INTERVAL

BINGO! it works.
Happiness is :-)

Graham Coates


"Vivek Khera" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> >>>>> "GC" == Graham Coates <[EMAIL PROTECTED]> writes:
>
> GC> SELECT Invoices.InvoiceDate + INTERVAL '41 Days'
> GC> works fine
> GC> but when trying to substitute the number of days with a value form a
field
> GC> e.g.
>
> GC> SELECT Invoices.InvoiceDate + INTERVAL Acct.AverageDaysToPay 'Days'
>
> try
>
>  SELECT Invoices.InvoiceDate + Acct.AverageDaysToPay::interval
>
>
>
> --
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Vivek Khera, Ph.D.Khera Communications, Inc.
> Internet: [EMAIL PROTECTED]   Rockville, MD   +1-240-453-8497
> AIM: vivekkhera Y!: vivek_khera   http://www.khera.org/~vivek/



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

http://www.postgresql.org/search.mpl



[SQL] How do I view triggers

2003-02-21 Thread Graham Vickrage
Hi All, 

I am slightly confused as to how I view what triggers I have on a
certain table.

select * from pg_trigger

doesn't show me the trigger I have just created, but its definitely
there because when I try and create it, it gives an error that it
already exists.

TIA

Graham




---(end of broadcast)---
TIP 3: 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


[SQL] pg_func problem

2003-02-20 Thread Graham Vickrage
Hi All,

I am trying to use the function below, it works fine on my dev server
running 7.2.3 but does not work on my production server running 7.1.2.
(both on linux)

Would anyone be able to shed some light on why this is the case.

The error I get is: 
ERROR during compile of 'change_sup_ord_status' near line 19
parse error at or near "IF"

I am running the following query against the function below: -

Query: UPDATE supplier_order SET status = 'Pending' where id = 2003;


CREATE FUNCTION change_sup_ord_status () RETURNS OPAQUE AS '
DECLARE
num INT4;
BEGIN
IF OLD.status = ''Complete'' AND NEW.status != ''Complete'' THEN
--Invalid option
RAISE EXCEPTION ''This is an invlid status change '';
ELSIF OLD.status = ''Pending''  THEN
IF NEW.status = ''Complete'' THEN
UPDATE supplier_order_detail SET
status=''Complete'' WHERE supplier_order_id = OLD.id AND
status=''Pending'';
ELSIF NEW.status = ''VOID'' OR NEW.status = ''Saved''
THEN
SELECT count(*) INTO num FROM
supplier_order_detail WHERE supplier_order_id = OLD.id AND status =
''Complete'';

IF num > 0 THEN 
RAISE EXCEPTION ''Invalid change of
status, some of the order has already been entered into stock'';
    END IF;
END IF;
ELSIF (OLD.status = ''VOID'') AND NEW.status = ''Complete'' THEN
RAISE EXCEPTION ''Invalid change of status'';
END IF;
RETURN NEW;
END;' LANGUAGE 'plpgsql';


Thanks in advance.

Graham



---(end of broadcast)---
TIP 3: 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


[SQL] Conversion question

2003-11-19 Thread Graham Vickrage
Apologies as this probably isn't really for this list but...

In postgresql you can execute a statement such as: 

SELECT 1 > 2;

And it would return 'f'

Does anyone know if you can do this in SQL Server as I have to do a
conversion of some prewritten SQL code.

MTIA,

Graham.




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

   http://www.postgresql.org/docs/faqs/FAQ.html


[SQL] Normalising an existing table - how?

2004-06-24 Thread Graham Leggett
Hi all,
I have an existing table containing a column in it containing a money 
value. I would like to normalise this column into a separate table, as 
the money value is to be expanded to contain a tax value, etc.

I have been trying to find a SQL query that will do the following:
- Select the money column from the table
- Populate the new normalised table with each row containing the value 
from the original money column
- Write the primary keys of the new rows in the normalised table, back 
to a new column in the original table added for this purpose.

This third step I am struggling with - can anyone suggest a query that 
might achieve the writing back of the primary key to the original table?

Regards,
Graham
--
---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faqs/FAQ.html


Re: [SQL] Normalising an existing table - how?

2004-06-24 Thread Graham Leggett
Frank Bax wrote:
Do all three steps in one command:
create table newtable as (select key1, key2, money from oldtable);
How would I put the primary key of each row in newtable back into 
oldtable? Also, newtable already exists and contains data - I need to 
add normalised data to an already partially normalised database.

Regards,
Graham
--
---(end of broadcast)---
TIP 6: Have you searched our list archives?
  http://archives.postgresql.org


Re: [SQL] Normalising an existing table - how?

2004-06-24 Thread Graham Leggett
Phil Endecott wrote:
- Select the money column from the table
- Populate the new normalised table with each row containing
 the value from the original money column
- Write the primary keys of the new rows in the normalised
 table, back to a new column in the original table added for
 this purpose.

Change the order.  Do the third step first:
alter table T add column X integer;
update T set X = nextval(somesequence);
Now do the first and second steps together:
select X, MoneyColumn from T into NewTable;
Is this the sort of thing you need?
I think it is - though the select foo into NewTable part, does NewTable 
have to be empty first, or can it already exist?

In my case NewTable has some rows in it already, as the database is 
currently partially normalised - I need to finish the job.

Regards,
Graham
--
---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [SQL] Normalising an existing table - how?

2004-06-25 Thread Graham Leggett
Richard Huxton wrote:
How would I put the primary key of each row in newtable back into 
oldtable? Also, newtable already exists and contains data - I need to 
add normalised data to an already partially normalised database.

How can newtable contain data if you don't have any keys for it?
Perhaps a fuller example, with the schemas of the tables in question 
would help.
I have a system that keeps track of money. Part of the system's money 
handling is already normalised, in that there is a money table, 
containing information about the amount concerned, the amount of tax 
appropriate, the currency involved, etc. Part of the system is not 
normalised, in that a simple column in table contains the amount of 
money, but not the tax appropriate, nor the currency involved. My task 
is to fix this situation to make it consistent throughout.

Because the database is partially normalised, the money table already 
contains rows corresponding to the properly normalised part of the 
database. New rows need to be added on top of the existing rows, 
replacing the rest of the columns that need to be normalised. As a 
result, creating a new money table is not possible, as this table 
already exists.

Regards,
Graham
--
---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faqs/FAQ.html


[SQL] Scheme not dropping

2005-03-15 Thread Graham Vickrage
I am dropping a database with an additional scheme other than public on
version 7.3.2.

When I come to recreate the database with the same scheme it gives me
the error: 

ERROR: namespace "xxx" already exists

Is this temp table issue, if so how do I get round it?

Many thanks in advance.

Graham


---(end of broadcast)---
TIP 3: 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


[SQL] Copy user privileges

2005-07-12 Thread Graham Vickrage
Hi All,

I have dumped a database with no data and restored it with a new db
name.

I want to keep all the privileges but assign them to a new user. 

What is the best way of doing this? Is it to alter the system tables
directly in which case which ones.

TIA,

Graham


---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match


Re: [SQL] Copy user privileges

2005-07-13 Thread Graham Vickrage
Thanks for the suggestions but as you guessed I do need to keep the old
user and also groups would be unsuitable as I don't want either user to
be able to see data on the other database.

Thought there would be some SQL statement I could run on the sys tables
but I don't know enough about the internals to attempt it.

Thanks again,

Graham

-Original Message-
From: Michael Fuhr [mailto:[EMAIL PROTECTED] 
Sent: 12 July 2005 20:29
To: Tom Lane
Cc: Graham Vickrage; pgsql-sql@postgresql.org
Subject: Re: [SQL] Copy user privileges


On Tue, Jul 12, 2005 at 03:12:50PM -0400, Tom Lane wrote:
> "Graham Vickrage" <[EMAIL PROTECTED]> writes:
> > I want to keep all the privileges but assign them to a new user.
> 
> > What is the best way of doing this?
> 
> How about just renaming the old user to a new name?
> 
> I don't think we have an ALTER command for that, but an UPDATE on 
> pg_shadow would get the job done just as well.

What about ALTER USER RENAME TO?

test=# CREATE USER user1;
CREATE USER
test=# CREATE TABLE foo (x integer);
CREATE TABLE
test=# GRANT SELECT ON foo TO user1;
GRANT
test=# \z foo
Access privileges for database "test"
 Schema | Name | Type  |  Access privileges   
+--+---+--
 public | foo  | table | {postgres=arwdRxt/postgres,user1=r/postgres}
(1 row)

test=# ALTER USER user1 RENAME TO user2;
ALTER USER
test=# \z foo
Access privileges for database "test"
 Schema | Name | Type  |  Access privileges   
+--+---+--
 public | foo  | table | {postgres=arwdRxt/postgres,user2=r/postgres}
(1 row)

Renaming the user is only useful if you no longer need the old user. If
you need to keep the old user and copy its privileges, then consider
granting privileges to groups instead of to users -- then you could just
add the new user to a group.

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/


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

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


[SQL] formatting intervals with to_char

2006-10-03 Thread Graham Davis

Hi,

I'm trying to format the output of a time interval so that it displays 
as HH:MM:SS no matter how many days it spans.  So for instance, an 
interval of 2 days 4 hours and 0 minutes would look something like 
"52:00:00".  The documentation for to_char states that:


"|to_char(interval)| formats HH and HH12 as hours in a single day, while 
HH24 can output hours exceeding a single day, e.g. >24."


However I can not get it to work with time intervals that span more than 
1 day.  For instance, the following query returns this time interval:


Query:
select ('2006-09-15T23:59:00'::timestamp - '2006-09-01 
09:30:41'::timestamp);


Result:
14 days 14:28:19

But when I run to_char on this with HH24, it doesn't take into effect 
the number of days:


Query:
select to_char(('2006-09-15T23:59:00'::timestamp - '2006-09-01 
09:30:41'::timestamp), 'HH24:MI:SS');


Result:
14:28:19

It just gives me the offset of hours, min, seconds on that 14th day.  
The result I'm looking for is:  350:28:19


What am I doing wrong, or how can I get this desired output?  Thanks,

--
Graham Davis
Refractions Research Inc.
[EMAIL PROTECTED]


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


Re: [SQL] formatting intervals with to_char

2006-10-04 Thread Graham Davis
I haven't heard any replies from this, so in the meantime I've found a 
hacky way to get the output I desire.  I'm basically calculating the 
hours on the fly and piecing together a formatted string with 
concatenations like this:


SELECT
(((EXTRACT(day from time_idle)*24)+EXTRACT(hour from time_idle)) || ':' ||
   EXTRACT(minute from time_idle) || ':' || EXTRACT(second from 
time_idle))::interval AS myinterval

FROM
( SELECT ('2006-09-15T23:59:00'::timestamp - '2006-09-01 
09:30:41'::timestamp) AS time_idle) FROM_TABLE;


If anyone knows a better/proper way to get this result, let me know.  
Thanks,


Graham.



Graham Davis wrote:


Hi,

I'm trying to format the output of a time interval so that it displays 
as HH:MM:SS no matter how many days it spans.  So for instance, an 
interval of 2 days 4 hours and 0 minutes would look something like 
"52:00:00".  The documentation for to_char states that:


"|to_char(interval)| formats HH and HH12 as hours in a single day, 
while HH24 can output hours exceeding a single day, e.g. >24."


However I can not get it to work with time intervals that span more 
than 1 day.  For instance, the following query returns this time 
interval:


Query:
select ('2006-09-15T23:59:00'::timestamp - '2006-09-01 
09:30:41'::timestamp);


Result:
14 days 14:28:19

But when I run to_char on this with HH24, it doesn't take into effect 
the number of days:


Query:
select to_char(('2006-09-15T23:59:00'::timestamp - '2006-09-01 
09:30:41'::timestamp), 'HH24:MI:SS');


Result:
14:28:19

It just gives me the offset of hours, min, seconds on that 14th day.  
The result I'm looking for is:  350:28:19


What am I doing wrong, or how can I get this desired output?  Thanks,




--
Graham Davis
Refractions Research Inc.
[EMAIL PROTECTED]


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

  http://archives.postgresql.org


Re: [HACKERS] timestamp subtraction (was Re: [SQL] formatting intervals

2006-10-06 Thread Graham Davis
Great, it's nice to see that this might get rolled into one of the next 
releases.  Thanks,


Graham.


Tom Lane wrote:


Michael Glaesemann <[EMAIL PROTECTED]> writes:
 

Considering how late it is in the cycle, perhaps the change in  
behavior should come in 8.3.
   



Yeah, there's not really enough time to think through the consequences
now.  I'd like to experiment with it for 8.3 though.

regards, tom lane
 




--
Graham Davis
Refractions Research Inc.
[EMAIL PROTECTED]


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


[SQL] pg_dump problem

2000-06-26 Thread Graham Vickrage

I am trying to backup a production database running on v6.5 and restore it
on our test machine running v6.5.

The largest table has about 750,000 rows, the other 5 tables are very small
approx 100 rows.

When I try to restore the database using  "psql -e database < db.out" I get
the error message
"query buffer max length of 16384 exceeded" after each row.

Would somebody please tell me how to increse this buffer (assuming this is
whats required to solve the problem) as I have looked though the
documentation and I am still struggling :-(

Cheers

Graham