pg_dump(all) and views, broke
Hi all
CREATE RULE "_RETmessages" AS ON SELECT TO "messages" DO INSTEAD SELECT
"title", "mess", "iurl", "lurl", "posted", "fname", "lname", "email",
"uid", "ppid", "pid", "bid" FROM "post", "users" WHERE "uid" = "uid";
ERROR: Column uid is ambiguous
It left off the table names from 'WHERE "uid" = "uid";'
I do not profess to understand all this rule stuff, but I don't understand
why when I create a view using 'create view ....', then why does pg_dump
need to create the view as a table, then later create a rule to make the
table into a view? Why not just dump a 'create view ....' command
instead? Not that it matters, as long as it works, just seems confusing
is all.
Thanks, have a great day.
Terry Mackintosh <terry@terrym.com> http://www.terrym.com
sysadmin/owner Please! No MIME encoded or HTML mail, unless needed.
Proudly powered by R H Linux 4.2, Apache 1.3, PHP 3, PostgreSQL 6.4
-------------------------------------------------------------------
Success Is A Choice ... book by Rick Patino, get it, read it!
Hi all
CREATE RULE "_RETmessages" AS ON SELECT TO "messages" DO INSTEAD SELECT
"title", "mess", "iurl", "lurl", "posted", "fname", "lname", "email",
"uid", "ppid", "pid", "bid" FROM "post", "users" WHERE "uid" = "uid";
ERROR: Column uid is ambiguousIt left off the table names from 'WHERE "uid" = "uid";'
I do not profess to understand all this rule stuff, but I don't understand
why when I create a view using 'create view ....', then why does pg_dump
need to create the view as a table, then later create a rule to make the
table into a view? Why not just dump a 'create view ....' command
instead? Not that it matters, as long as it works, just seems confusing
is all.
Creating a table first and turn it later into view by CREATE
RULE is just for simplification of pg_dump. It does not need
to make a difference between those rules that are handmade
production rules and those that came in due to CREATE VIEW.
But the above is a bug and I'll fix it soon.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#======================================== jwieck@debis.com (Jan Wieck) #
Hi Jan
OK, thanks for your reply.
A followup, I noticed that if the table names have been aliased, then it
puts in the alias name, it's only when not aliased that it leaves out the
names
Here is a much more complicated one that works fine, but uses aliased
table names:
CREATE RULE "_RETkeywcatlist" AS ON SELECT TO "keywcatlist" DO INSTEAD
SELECT "l"."title", "l"."discription", "l"."url", "l"."lanme",
"l"."fname", "l"."email",
"l"."ent_date", "l"."mod_date", "l"."approved", "l"."item_id",
"k"."keyword", "c"."category" FROM "listings" "l", "keywords" "k",
"keyw2list" "k2l", "categories" "c", "cat2list" "c2l" WHERE
((("l"."item_id" = "k2l"."item_id") AND ("k"."keyw_id" = "k2l"."keyw_id"))
AND ("l"."item_id" = "c2l"."item_id")) AND ("c"."category" =
"c2l"."category");
I know the prefixes could have been left off of unique names, but put them
on for clarity in the future. ... or for confusion, however it works out:)
Thanks
Terry Mackintosh <terry@terrym.com> http://www.terrym.com
sysadmin/owner Please! No MIME encoded or HTML mail, unless needed.
Proudly powered by R H Linux 4.2, Apache 1.3, PHP 3, PostgreSQL 6.4
-------------------------------------------------------------------
Success Is A Choice ... book by Rick Patino, get it, read it!
Hi Jan
Also, it leaves off the table names in the select clause, as well as the
where clause. I just noticed that. (when it still did not work after hand
editing the where clause :)I hope I'm being helpful, and not being a pest.
Bug reports are a kind of helpful pest :-)
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#======================================== jwieck@debis.com (Jan Wieck) #
Import Notes
Reply to msg id not found: Pine.LNX.3.95.981125130626.6746A-100000@terry1.acun.com | Resolved by subject fallback
Hi Jan
Also, it leaves off the table names in the select clause, as well as the
where clause. I just noticed that. (when it still did not work after hand
editing the where clause :)
I hope I'm being helpful, and not being a pest.
Have a great day, and thanks
Terry Mackintosh <terry@terrym.com> http://www.terrym.com
sysadmin/owner Please! No MIME encoded or HTML mail, unless needed.
Proudly powered by R H Linux 4.2, Apache 1.3, PHP 3, PostgreSQL 6.4
-------------------------------------------------------------------
Success Is A Choice ... book by Rick Patino, get it, read it!