From: Koichi S. <koi...@gm...> - 2010-05-13 01:25:24
|
Hi Mason-san; Thanks a lot for the work. I'd like to summarize what we can and what we cannot with PG-XC and pgadmin. ---------- Koichi Suzuki 2010/5/13 Mason Sharp <mas...@en...>: > Pavan Deolasee wrote: >> >> >> On Wed, May 12, 2010 at 3:19 AM, Mason Sharp >> <mas...@en... <mailto:mas...@en...>> >> wrote: >> >> I started the task to recognize more "Postgres-XC safe" queries. >> >> I initially focused on native pg_catalog based views like >> pg_settings. This is because it used by pgadmin. With the attached >> patch, pgadmin no longer complains about such queries because they >> are now supported. >> >> The PostgreSQL query rewriter appears to convert the view into a >> subquery. I modified the XC planner to check for pg_catalog table >> usage in the FROM clause (and subqueries thereof). >> >> >> FWIW here are couple of things that I noticed: >> >> + foreach(item, rtable) >> + { >> + RangeTblEntry *rte = (RangeTblEntry *) lfirst(item); >> + >> + if (rte->rtekind == RTE_RELATION) >> + { >> + if (rte->relid > FirstNormalObjectId) >> + return false; >> + } else if (rte->rtekind == RTE_SUBQUERY) >> + return contains_only_pg_catalog (rte->subquery->rtable); >> + } >> >> This code will break out of the loop if the subquery contains only >> pg_catalog tables. But other rtable entries may contain reference to >> non-system tables. >> >> The other thing I am worried about is whether its safe to just rely on >> FirstNormalObjectId to decide if a relation belongs to pg_catalog or >> not. A user can create a table in pg_catalog (though I think it >> requires changes to GUC) and that may get an OID larger than the >> FirstNormalObjectId or we may add a new default schema and create >> tables in the schema as part of initdb (we do that routinely in EDBAS >> for example). Should we just explicitly lookup the namespace of the >> relation instead ? >> > Thanks, I made those changes and committed. > > Mason > >> Thanks, >> Pavan >> >> -- >> Pavan Deolasee >> EnterpriseDB http://www.enterprisedb.com > > > -- > Mason Sharp > EnterpriseDB Corporation > The Enterprise Postgres Company > > > This e-mail message (and any attachment) is intended for the use of > the individual or entity to whom it is addressed. This message > contains information from EnterpriseDB Corporation that may be > privileged, confidential, or exempt from disclosure under applicable > law. If you are not the intended recipient or authorized to receive > this for the intended recipient, any use, dissemination, distribution, > retention, archiving, or copying of this communication is strictly > prohibited. If you have received this e-mail in error, please notify > the sender immediately by reply e-mail and delete this message. > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > |