Thread: ODBC: OID column in views
I've recently come across a couple of minor problems(?) in the ODBC driver: 1) When querying a view eg: SELECT * FROM pg_tables; the driver will always attempt (and fail) to retrieve the oid column thus returning an ODBC call failed error. This occurs whether the 'Show OID Column' is selected or not. I can see the obvious overhead in checking whether or not a query is on a view or table - is the current behaviour the best solution or is there another way around this (other than specifying column names in queries)? 2) Under OID options, if you uncheck 'Show Column', the 'Fake Index' option will correctly be greyed out. If it is ticked when it is greyed though, the driver will still connect with: showoid='0',fakeoidindex='1'. Can this cause any problems? Regards, Dave. -- Dave Page, Network & Systems Manager, The Vale Housing Association Ltd. dpage@vale-housing.co.uk http://www.vale-housing.co.uk (Work) http://www.pgadmin.freeserve.co.uk/ (Home of pgAdmin) Beer can be a permanent solution - but only if you have enough of it!
Attachment
Dave Page wrote: > I've recently come across a couple of minor problems(?) in the ODBC driver: > > 1) When querying a view eg: > > SELECT * FROM pg_tables; > > the driver will always attempt (and fail) to retrieve the oid column thus > returning an ODBC call failed error. This occurs whether the 'Show OID > Column' is selected or not. I can see the obvious overhead in checking > whether or not a query is on a view or table - is the current behaviour the > best solution or is there another way around this (other than specifying > column names in queries)? > I'm not sure what you mean by "the driver will always attempt to retrieve the oid column"... What is the driver doing? If it is sending another query, could you show me exactly what because its been a while since I looked at the code. > > 2) Under OID options, if you uncheck 'Show Column', the 'Fake Index' option > will correctly be greyed out. If it is ticked when it is greyed though, the > driver will still connect with: showoid='0',fakeoidindex='1'. Can this cause > any problems? > I dont think so, but I'm not 100% sure. Byron
I have a problem similar about RowVersioning. If I link a view with RowVersioning checked M$Access show the following message, when I try to open the table: -------------------------------------------------------------------------- Error while executing the query. ERROR: system column xmin not available - table_name is a view (#1) -------------------------------------------------------------------------- Dave Page ha scritto: > I've recently come across a couple of minor problems(?) in the ODBC driver: > > 1) When querying a view eg: > > SELECT * FROM pg_tables; > > the driver will always attempt (and fail) to retrieve the oid column thus > returning an ODBC call failed error. This occurs whether the 'Show OID > Column' is selected or not. I can see the obvious overhead in checking > whether or not a query is on a view or table - is the current behaviour the > best solution or is there another way around this (other than specifying > column names in queries)? > > 2) Under OID options, if you uncheck 'Show Column', the 'Fake Index' option > will correctly be greyed out. If it is ticked when it is greyed though, the > driver will still connect with: showoid='0',fakeoidindex='1'. Can this cause > any problems? > > Regards, > > Dave. -- ______________________________________________________________ PostgreSQL 6.5.0 on i586-pc-linux-gnu, compiled by gcc 2.7.2.3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jose'