Thread: Adaptation of instnwnd.sql to Pgsql

Adaptation of instnwnd.sql to Pgsql

From
David.Jacques@CCRS.NRCan.gc.ca
Date:
Listers...

I am new to PostGreSQL and I am trying to adapt the
instnwnd.sql stored procedure from SQL Server to create the
ubiquitous NorthWind database structure on my server. However
the ability to name your indexes seems to be non existent. As is the
ability to create indexes of the same name on different tables.

Does anyone out there have an adapted Pgsql version of this script ?
It would be invaluable to me to get quickly up to speed on this version
of the SQL standard by comparing what I know from TSQL to what the
equivalent command syntax is in pgsql.

regards

David

David A. Jacques
Spatial Database Developer
Natural Resources and Hazards Section
Applications Division
Canada Centre for Remote Sensing
588 Booth Street, Room 317
Ottawa ,Ontario K1A 0Y7
Tel: (613) 947-1306
Fax: (613) 947-1408
E-Mail: David.Jacques@CCRS.NRCan.gc.ca

The views and ideas expressed in this communication are hereby deemed to be
my own and in no way can be construed as endorsed by the CCRS or the
Government of Canada.


Re: Adaptation of instnwnd.sql to Pgsql

From
Gaetano Mendola
Date:
David.Jacques@CCRS.NRCan.gc.ca wrote:
> Listers...
>
> I am new to PostGreSQL and I am trying to adapt the
> instnwnd.sql stored procedure from SQL Server to create the
> ubiquitous NorthWind database structure on my server. However
> the ability to name your indexes seems to be non existent.

This is not true. During the index creation you can specify
the name, take a look at the documentation.

> As is the ability to create indexes of the same name on different tables.

About this you're right, index name are DB wide...


Regards
Gaetano Mendola


Re: Adaptation of instnwnd.sql to Pgsql

From
Tom Lane
Date:
Gaetano Mendola <mendola@bigfoot.com> writes:
> David.Jacques@CCRS.NRCan.gc.ca wrote:
>> As is the ability to create indexes of the same name on different tables.

> About this you're right, index name are DB wide...

Only schema-wide, but that probably doesn't help David any...

            regards, tom lane

problems with pg_dump and pg_restore

From
admin@usachurch.com
Date:
Hello list,

I am having problems getting pg_dump and pg_restore to work the way
they are supposed to work - or at least the way I imagine they should work!

I have a primary DB server, and a backup DB server.  The point is to
use pg_dump
every 5 minutes to have the current postgeSQL db available on the
backup DB box.
btw, these are both running version 7.4.2.

Here's the command I am issuing on the primary DB server:

pg_dump -U admin staging -Fc -b -f /home/postgres/staging-dump

And, it seems to work - creating a 20MB archive that has some readable text in
it near the top, and a bunch of random characters to the end.  According to the
docs, this file should be able to used in many different ways by the pg_restore
command.  So, on the backup DB server, I am trying to completely rebuild the
staging database to the exact state of the primary server with:

pg_restore -U admin -c /home/postgres/staging-dump

Now, although tons of data is now streaming to my monitor, when it is
done, none
of the new data is in the backup's staging db.

So, I tried deleting "staging" on the backup server with:
dropdb -U admin staging

and then create it again:
createdb -U dba staging -O admin

And when I run the above pg_restore command, none of the data or schema is in
the newly created staging db.

So, I tried doing this variation:

pg_restore -U admin -C -d staging /home/postgres/staging-dump

but I get this error:
pg_restore: [archiver (db)] could not execute query: ERROR:  database
"staging" already exists

and if i don't recreate the staging db with the createdb command, I
get this error:
pg_restore: [archiver (db)] connection to database "staging" failed:
FATAL:  database "staging" does not exist

I'm sure that I'm close to getting this to work - any advise?

Thanks,
Devin

Re: problems with pg_dump and pg_restore

From
Tom Lane
Date:
admin@usachurch.com writes:
> pg_restore -U admin -c /home/postgres/staging-dump

> Now, although tons of data is now streaming to my monitor, when it is
> done, none of the new data is in the backup's staging db.

The default behavior of pg_restore is to emit SQL commands onto stdout,
which of course is not going to do a lot for your backup DB.  What you
probably want is to include a "-d database" switch to tell it to connect
to a database and send the commands there.

> So, I tried doing this variation:

> pg_restore -U admin -C -d staging /home/postgres/staging-dump
> pg_restore: [archiver (db)] could not execute query: ERROR:  database
> "staging" already exists

-C tells it to create (and then connect to) the target DB, rather than
connect to an existing DB and restore into that.  So generally you want
to say "-d template1" (or some other existing DB) when you use -C.

            regards, tom lane

Re: problems with pg_dump and pg_restore

From
admin@usachurch.com
Date:
>  > pg_restore -U admin -C -d staging /home/postgres/staging-dump
>>  pg_restore: [archiver (db)] could not execute query: ERROR:  database
>>  "staging" already exists
>
>-C tells it to create (and then connect to) the target DB, rather than
>connect to an existing DB and restore into that.  So generally you want
>to say "-d template1" (or some other existing DB) when you use -C.

Tom,

But if I first "dropdb -U admin staging", and then issue:
pg_restore -U admin -C -d staging /home/postgres/staging-dump

I get the error:
pg_restore: [archiver (db)] connection to database "staging" failed:
FATAL:  database "staging" does not exist

Yet the docs state that the above command should Create the database
named by the "-d staging"
part of the command.  I'm confused as to why that doesn't work.  I
also am not sure what the
template1 and template0 are there for.

Regards,
Devin