Hi,
I'm trying to list views, eliminating internal ones from the output.
Using 7.2, I found this simple statement :
SELECT viewname FROM pg_views WHERE viewname !~ '^pg_';
It works fine, ignoring 23 pg_* tables. And I get my actual views returned.
But, with 7.4, I get many (about 30) more system views, as table_constraints,
table_privileges, tables, etc... And these do not have any 'pg' prefix.
Do you know of some query that would properly list views, wether it's running
on Postgresql 7.4 or 7.2 and lower ?
--
og
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match 11 1742
Hi,
What about
mydb=# \dv
??
Doesn't it works fine. I don't see any pg views.
Regards,
Kaloyan
Olivier Guilyardi wrote: Hi,
I'm trying to list views, eliminating internal ones from the output. Using 7.2, I found this simple statement : SELECT viewname FROM pg_views WHERE viewname !~ '^pg_';
It works fine, ignoring 23 pg_* tables. And I get my actual views returned.
But, with 7.4, I get many (about 30) more system views, as table_constraints, table_privileges, tables, etc... And these do not have any 'pg' prefix.
Do you know of some query that would properly list views, wether it's running on Postgresql 7.4 or 7.2 and lower ? -- og
---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html
On Tuesday 10 August 2004 03:14, Olivier Guilyardi wrote: SELECT viewname FROM pg_views WHERE viewname !~ '^pg_';
with 7.4 :
SELECT viewname FROM pg_views WHERE schemaname NOT IN
('pg_catalog','information_schema');
Albert
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to ma*******@postgresql.org so that your
message can get through to the mailing list cleanly
Olivier Guilyardi <ml@xung.org> writes: Okay, that's what I thought : an initial little query to identify the server version, so that subsequent queries can be adapted accordingly...
But, since this "What Postgresql version is this ?" query is silently performed by the library I'm interested in, what the host application is not supposed to know, it must be ensured that it's not going to break : is version() the way to go ? Could there be some permission issues with very restrictive user accounts ? Some better _only-one-query_ way to identify the server version/features ?
'SELECT version();' should work. There will be no permission issues
with calling that function unless you set the database up that way--it
has PUBLIC execute permission by default.
-Doug
--
Let us cross over the river, and rest under the shade of the trees.
--T. J. Jackson, 1863
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to ma*******@postgresql.org so that your
message can get through to the mailing list cleanly
Hi,
No, I need an SQL query, this about the following (PHP) PEAR bug: http://pear.php.net/bugs/bug.php?id=2085
No psql, just SQL.
In Postgresql 7.2, psql/describe.c/listTables() contains :
if (showSystem)
strcat(buf, " AND c.relname ~ '^pg_'\n");
else
strcat(buf, " AND c.relname !~ '^pg_'\n");
While, in Postgresql 7.4 I see :
if (showSystem)
appendPQExpBuffer(&buf, " AND n.nspname = 'pg_catalog'\n");
else
appendPQExpBuffer(&buf, " AND n.nspname NOT IN ('pg_catalog', 'pg_toast')\n");
"n" is here an alias for the pg_namespace table, which does not exist
in 7.2, since schemas where introduced with 7.3...
Am I wrong or is this a backward compatibility issue that forbids
listing views/tables/whatever with an identical SQL query on 7.2 and 7.4 ?
Regards
--
og
Kaloyan Iliev Iliev wrote: Hi, What about mydb=# \dv ?? Doesn't it works fine. I don't see any pg views. Regards, Kaloyan
Olivier Guilyardi wrote:
Hi,
I'm trying to list views, eliminating internal ones from the output. Using 7.2, I found this simple statement : SELECT viewname FROM pg_views WHERE viewname !~ '^pg_';
It works fine, ignoring 23 pg_* tables. And I get my actual views returned.
But, with 7.4, I get many (about 30) more system views, as table_constraints, table_privileges, tables, etc... And these do not have any 'pg' prefix.
Do you know of some query that would properly list views, wether it's running on Postgresql 7.4 or 7.2 and lower ? -- og
---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to ma*******@postgresql.org so that your
message can get through to the mailing list cleanly ra@konvergencia.hu wrote: On Tuesday 10 August 2004 03:14, Olivier Guilyardi wrote:
SELECT viewname FROM pg_views WHERE viewname !~ '^pg_';
with 7.4 :
SELECT viewname FROM pg_views WHERE schemaname NOT IN ('pg_catalog','information_schema');
For me, the best is an identical query for both 7.2 and 7.4. Since
the pg_views schemaname field does not exist in 7.2, this last query
is going to raise an error.
Let's take, say :
SELECT viewname FROM pg_views
WHERE schemaname NOT IN ('pg_catalog','information_schema')
AND viewname !~ '^pg_';
Is there an SQL trick so that this does not raise an error in 7.2 ?
Something like IF FIELD EXISTS (this is pseudo-code) ?
--
og
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ma*******@postgresql.org
Olivier Guilyardi <ml@xung.org> writes: "n" is here an alias for the pg_namespace table, which does not exist in 7.2, since schemas where introduced with 7.3...
Am I wrong or is this a backward compatibility issue that forbids listing views/tables/whatever with an identical SQL query on 7.2 and 7.4 ?
System catalog layouts have never been guaranteed for backward
compatibility. Going forward, the stable way to find out about your
tables is the SQL_standard "information_schema" which first appeared in
7.4 IIRC. This doesn't help you with 7.2 though--you'll have to
handle it specially. :(
-Doug
--
Let us cross over the river, and rest under the shade of the trees.
--T. J. Jackson, 1863
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives? http://archives.postgresql.org
Doug McNaught wrote: 'SELECT version();' should work. There will be no permission issues with calling that function unless you set the database up that way--it has PUBLIC execute permission by default.
Good
--
og
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend
Doug McNaught wrote: Olivier Guilyardi <ml@xung.org> writes:Am I wrong or is this a backward compatibility issue that forbids listing views/tables/whatever with an identical SQL query on 7.2 and 7.4 ?
System catalog layouts have never been guaranteed for backward compatibility. Going forward, the stable way to find out about your tables is the SQL_standard "information_schema" which first appeared in 7.4 IIRC. This doesn't help you with 7.2 though--you'll have to handle it specially. :(
Okay, that's what I thought : an initial little query to identify the server
version, so that subsequent queries can be adapted accordingly...
But, since this "What Postgresql version is this ?" query is silently performed
by the library I'm interested in, what the host application is not supposed to
know, it must be ensured that it's not going to break : is version() the way to
go ? Could there be some permission issues with very restrictive user accounts ?
Some better _only-one-query_ way to identify the server version/features ?
--
og
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ma*******@postgresql.org
Olivier Guilyardi <ml@xung.org> writes: Okay, that's what I thought : an initial little query to identify the server version, so that subsequent queries can be adapted accordingly...
But, since this "What Postgresql version is this ?" query is silently performed by the library I'm interested in, what the host application is not supposed to know, it must be ensured that it's not going to break : is version() the way to go ? Could there be some permission issues with very restrictive user accounts ? Some better _only-one-query_ way to identify the server version/features ?
'SELECT version();' should work. There will be no permission issues
with calling that function unless you set the database up that way--it
has PUBLIC execute permission by default.
-Doug
--
Let us cross over the river, and rest under the shade of the trees.
--T. J. Jackson, 1863
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to ma*******@postgresql.org so that your
message can get through to the mailing list cleanly
Olivier Guilyardi <ml@xung.org> writes: Doug McNaught wrote: 'SELECT version();' should work. There will be no permission issues with calling that function unless you set the database up that way--it has PUBLIC execute permission by default.
Good
In theory it's possible for that to fail in 7.3: if someone makes their
own function named version() and then alters the default search path so
that their function is found before the one in pg_catalog, then the
wrong function would be invoked.
In practice I'd say this falls in the category of "don't do that then".
regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend
Doug McNaught wrote: 'SELECT version();' should work. There will be no permission issues with calling that function unless you set the database up that way--it has PUBLIC execute permission by default.
Good
--
og
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Mike N. |
last post by:
Hello:
I am new to T-SQL programing, and relativly new to SQL statements in
general, although I have a good understanding of database theory. I'm a
little confused as to the fundamental...
|
by: dbtoo_dbtoo |
last post by:
One of the databases has 50 views and when I do a db2look I only get
schema for 40 of them. If I select from the sysviews, I can see all 50
(the text column contains schema for all 10 (missing)...
|
by: David Jacques |
last post by:
I am trying to get a list of all files of a certain extension type on disk
to
do some processing in a loop. The code needs to be portable to UNIX, so
I need to use plain c functionality. Does...
|
by: Bennett Haselton |
last post by:
I want to display a hierarchical listing of items from a database
table, where, say, each row in the table has an "ID" field and a
"parent_id" field giving the ID of its parent (NULL if it's at the...
|
by: dbuchanan52 |
last post by:
Hello,
I am building an application for Windows Forms using. I am new to SQL
Server 'Views'. Are the following correct understanding of their use?
1.) I believe a view can be referenced in a...
| |
by: mooreit |
last post by:
The purpose for my questions is accessing these technologies from
applications. I develop both applications and databases. Working with
Microsoft C#.NET and Microsoft SQL Server 2000 Production and...
|
by: rod.weir |
last post by:
Fellow database developers,
I would like to draw on your experience with views. I have a database
that includes many views. Sometimes, views contains other views, and
those views in turn may...
|
by: Peter |
last post by:
People are telling me it is bad to put
select * from <atable>
in a view. I better should list all fields of the table inside the
definition of the view.
I dont know exactly why but some...
|
by: Gary |
last post by:
Hello guys!
Bear with me, I am a newbie.
She is the Data Warehouse manager. She has about 50 users to use the
Oracle database from M$ Access via ODBC connection. All those users
have only...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
| |
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
| |
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |