[GRASS5] Re: [GRASSLIST:9511] Re: switching to postgres

Do you use CVS version of GRASS?

Radim

On 1/3/06, Leonardo Lami <lami@faunalia.it> wrote:

Hi all,
I see that this problem is common to many commands.
We see this problem when we change Postgres 8.0 in Postgre 8.1
In the new version the table are created without oid like you can read above:

(default_with_oids (boolean)
This controls whether CREATE TABLE and CREATE TABLE AS include an OID column
in newly-created tables, if neither WITH OIDS nor WITHOUT OIDS is specified.
It also determines whether OIDs will be included in tables created by SELECT
INTO. In PostgreSQL 8.1 default_with_oids is disabled by default; in prior
versions of PostgreSQL, it was on by default.
The use of OIDs in user tables is considered deprecated, so most
installations should leave this variable disabled. Applications that require
OIDs for a particular table should specify WITH OIDS when creating the table.
This variable can be enabled for compatibility with old applications that do
not follow this behavior.)

If you want create a table with oid cloumn you must use the follow sql:
'create table tablename with oids';

or you can change the file:
/etc/postgresql/8.1/main/postgresql.conf
setting:
default_with_oids = true

but, probably, the rigth way is debug GRASS modules

Best regards

Leonardo

Alle 18:54, giovedì 15 dicembre 2005, hai scritto:
> > 6. use db.describe to check out the vector in GRASS
> >
> > GRASS 6.1.cvs (spearfish60):~ > db.describe table=spearfish_soils
> > driver=pg database=spearfish_soils
> > DBMI-Postgres driver error:
> > select * from spearfish_soils where oid < 0
> > ERROR: column "oid" does not exist
> >
> > What is oid? I can see from the columns that postgres printed out that I
> > have only columns cat and label, no oid. Is this something that should
> > have copied and did not?
>
> This is bug. By default postgres is using OID (hidden) column
> for each table. But it is possible to configure postgres to create tables
> without that column. My fault, it was stupid to use oid.
> Fixed in CVS.
>
> Radim