Hi John,
Thus schema name is not selected for postresql, nor is it returned for any connection. as only the field specified by AReturnField, in this case table_name, is added to the output list. Note that pg_class does not have an easy access to the schema/owner by name, it would require a join on an oid.

Suggestions:
1) The pg database also has a view, pg_stat_user_tables, that is simple and has the schema as well as the table name. There may be some good reason for not using it that I am not aware of.

I think, that if this view(s) is(are) presented in all versions of PostgreSQL which fcl-db is going to support, that it is no problem use them (I must note, that my preffered way is follow sql standard INFORMATION_SCHEMA views at least in column naming)

2) The simple way to get the schemas would be to simply 'select ... schemaname||'.'||relname as table_name ... from pg_stat_user_tables. This would be a change ONLY to the sql in pqconnection. (If worst comes to worst, I dare say could create my own pqconnection derivative with this change.)
Hm, if you want get also schema_name then you should use this approach:
sqlquery1.SchemaType:=stTables;
sqlquery1.Open;
and in loop fill TStrings using sqlquery1.FieldByName('schema_name')+'.'+sqlquery1.FieldByName('table_name')


3) A better solution, in my opinion, would be to add some extra TSchemaTypes, with matching TSQLConnection calls, for GetSchemas, GetTablesInSchema, and possibly the "TableBySchema" option as in (2). It seems the "infrastructure" already exists to do all of these things.

Personally I am not fan of this approach (mainly, because of keeping Delphi compatibility).

-Laco.

If this concept is acceptable I would be happy to work on patches for TSQLConnection and TPQConnection, but my knowledge of the other dbs varies from limited through out-of-date (Oracle) to none.

cheers
John Sunderland
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to