⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 create_view.out

📁 PostgreSQL 8.1.4的源码 适用于Linux下的开源数据库系统
💻 OUT
字号:
---- CREATE_VIEW-- Virtual class definitions--	(this also tests the query rewrite system)--CREATE VIEW street AS   SELECT r.name, r.thepath, c.cname AS cname    FROM ONLY road r, real_city c   WHERE c.outline ## r.thepath;CREATE VIEW iexit AS   SELECT ih.name, ih.thepath, 	interpt_pp(ih.thepath, r.thepath) AS exit   FROM ihighway ih, ramp r   WHERE ih.thepath ## r.thepath;CREATE VIEW toyemp AS   SELECT name, age, location, 12*salary AS annualsal   FROM emp;-- Test commentsCOMMENT ON VIEW noview IS 'no view';ERROR:  relation "noview" does not existCOMMENT ON VIEW toyemp IS 'is a view';COMMENT ON VIEW toyemp IS NULL;---- CREATE OR REPLACE VIEW--CREATE TABLE viewtest_tbl (a int, b int);COPY viewtest_tbl FROM stdin;CREATE OR REPLACE VIEW viewtest AS	SELECT * FROM viewtest_tbl;CREATE OR REPLACE VIEW viewtest AS	SELECT * FROM viewtest_tbl WHERE a > 10;SELECT * FROM viewtest; a  | b  ----+---- 15 | 20 20 | 25(2 rows)CREATE OR REPLACE VIEW viewtest AS	SELECT a, b FROM viewtest_tbl WHERE a > 5 ORDER BY b DESC;SELECT * FROM viewtest; a  | b  ----+---- 20 | 25 15 | 20 10 | 15(3 rows)-- should failCREATE OR REPLACE VIEW viewtest AS	SELECT a FROM viewtest_tbl WHERE a <> 20;ERROR:  cannot change number of columns in view-- should failCREATE OR REPLACE VIEW viewtest AS	SELECT 1, * FROM viewtest_tbl;ERROR:  cannot change number of columns in view-- should failCREATE OR REPLACE VIEW viewtest AS	SELECT a, b::numeric FROM viewtest_tbl;ERROR:  cannot change data type of view column "b"DROP VIEW viewtest;DROP TABLE viewtest_tbl;-- tests for temporary viewsCREATE SCHEMA temp_view_test    CREATE TABLE base_table (a int, id int)    CREATE TABLE base_table2 (a int, id int);SET search_path TO temp_view_test, public;CREATE TEMPORARY TABLE temp_table (a int, id int);-- should be created in temp_view_test schemaCREATE VIEW v1 AS SELECT * FROM base_table;-- should be created in temp object schemaCREATE VIEW v1_temp AS SELECT * FROM temp_table;NOTICE:  view "v1_temp" will be a temporary view-- should be created in temp object schemaCREATE TEMP VIEW v2_temp AS SELECT * FROM base_table;-- should be created in temp_views schemaCREATE VIEW temp_view_test.v2 AS SELECT * FROM base_table;-- should failCREATE VIEW temp_view_test.v3_temp AS SELECT * FROM temp_table;NOTICE:  view "v3_temp" will be a temporary viewERROR:  temporary tables may not specify a schema name-- should failCREATE SCHEMA test_schema    CREATE TEMP VIEW testview AS SELECT 1;ERROR:  temporary tables may not specify a schema name-- joins: if any of the join relations are temporary, the view-- should also be temporary-- should be non-tempCREATE VIEW v3 AS    SELECT t1.a AS t1_a, t2.a AS t2_a    FROM base_table t1, base_table2 t2    WHERE t1.id = t2.id;-- should be temp (one join rel is temp)CREATE VIEW v4_temp AS    SELECT t1.a AS t1_a, t2.a AS t2_a    FROM base_table t1, temp_table t2    WHERE t1.id = t2.id;NOTICE:  view "v4_temp" will be a temporary view-- should be tempCREATE VIEW v5_temp AS    SELECT t1.a AS t1_a, t2.a AS t2_a, t3.a AS t3_a    FROM base_table t1, base_table2 t2, temp_table t3    WHERE t1.id = t2.id and t2.id = t3.id;NOTICE:  view "v5_temp" will be a temporary view-- subqueriesCREATE VIEW v4 AS SELECT * FROM base_table WHERE id IN (SELECT id FROM base_table2);CREATE VIEW v5 AS SELECT t1.id, t2.a FROM base_table t1, (SELECT * FROM base_table2) t2;CREATE VIEW v6 AS SELECT * FROM base_table WHERE EXISTS (SELECT 1 FROM base_table2);CREATE VIEW v7 AS SELECT * FROM base_table WHERE NOT EXISTS (SELECT 1 FROM base_table2);CREATE VIEW v8 AS SELECT * FROM base_table WHERE EXISTS (SELECT 1);CREATE VIEW v6_temp AS SELECT * FROM base_table WHERE id IN (SELECT id FROM temp_table);NOTICE:  view "v6_temp" will be a temporary viewCREATE VIEW v7_temp AS SELECT t1.id, t2.a FROM base_table t1, (SELECT * FROM temp_table) t2;NOTICE:  view "v7_temp" will be a temporary viewCREATE VIEW v8_temp AS SELECT * FROM base_table WHERE EXISTS (SELECT 1 FROM temp_table);NOTICE:  view "v8_temp" will be a temporary viewCREATE VIEW v9_temp AS SELECT * FROM base_table WHERE NOT EXISTS (SELECT 1 FROM temp_table);NOTICE:  view "v9_temp" will be a temporary view-- a view should also be temporary if it references a temporary viewCREATE VIEW v10_temp AS SELECT * FROM v7_temp;NOTICE:  view "v10_temp" will be a temporary viewCREATE VIEW v11_temp AS SELECT t1.id, t2.a FROM base_table t1, v10_temp t2;NOTICE:  view "v11_temp" will be a temporary viewCREATE VIEW v12_temp AS SELECT true FROM v11_temp;NOTICE:  view "v12_temp" will be a temporary view-- a view should also be temporary if it references a temporary sequenceCREATE SEQUENCE seq1;CREATE TEMPORARY SEQUENCE seq1_temp;CREATE VIEW v9 AS SELECT seq1.is_called FROM seq1;CREATE VIEW v13_temp AS SELECT seq1_temp.is_called FROM seq1_temp;NOTICE:  view "v13_temp" will be a temporary viewSELECT relname FROM pg_class    WHERE relname LIKE 'v_'      AND relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'temp_view_test')    ORDER BY relname; relname --------- v1 v2 v3 v4 v5 v6 v7 v8 v9(9 rows)SELECT relname FROM pg_class    WHERE relname LIKE 'v%'     AND relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname LIKE 'pg_temp%')    ORDER BY relname; relname  ---------- v10_temp v11_temp v12_temp v13_temp v1_temp v2_temp v4_temp v5_temp v6_temp v7_temp v8_temp v9_temp(12 rows)CREATE SCHEMA testviewschm2;SET search_path TO testviewschm2, public;CREATE TABLE t1 (num int, name text);CREATE TABLE t2 (num2 int, value text);CREATE TEMP TABLE tt (num2 int, value text);CREATE VIEW nontemp1 AS SELECT * FROM t1 CROSS JOIN t2;CREATE VIEW temporal1 AS SELECT * FROM t1 CROSS JOIN tt;NOTICE:  view "temporal1" will be a temporary viewCREATE VIEW nontemp2 AS SELECT * FROM t1 INNER JOIN t2 ON t1.num = t2.num2;CREATE VIEW temporal2 AS SELECT * FROM t1 INNER JOIN tt ON t1.num = tt.num2;NOTICE:  view "temporal2" will be a temporary viewCREATE VIEW nontemp3 AS SELECT * FROM t1 LEFT JOIN t2 ON t1.num = t2.num2;CREATE VIEW temporal3 AS SELECT * FROM t1 LEFT JOIN tt ON t1.num = tt.num2;NOTICE:  view "temporal3" will be a temporary viewCREATE VIEW nontemp4 AS SELECT * FROM t1 LEFT JOIN t2 ON t1.num = t2.num2 AND t2.value = 'xxx';CREATE VIEW temporal4 AS SELECT * FROM t1 LEFT JOIN tt ON t1.num = tt.num2 AND tt.value = 'xxx';NOTICE:  view "temporal4" will be a temporary viewSELECT relname FROM pg_class    WHERE relname LIKE 'nontemp%'    AND relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'testviewschm2')    ORDER BY relname; relname  ---------- nontemp1 nontemp2 nontemp3 nontemp4(4 rows)SELECT relname FROM pg_class    WHERE relname LIKE 'temporal%'     AND relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname LIKE 'pg_temp%')    ORDER BY relname;  relname  ----------- temporal1 temporal2 temporal3 temporal4(4 rows)CREATE TABLE tbl1 ( a int, b int);CREATE TABLE tbl2 (c int, d int);CREATE TABLE tbl3 (e int, f int);CREATE TABLE tbl4 (g int, h int);CREATE TEMP TABLE tmptbl (i int, j int);--Should be in testviewschm2CREATE   VIEW  pubview AS SELECT * FROM tbl1 WHERE tbl1.aBETWEEN (SELECT d FROM tbl2 WHERE c = 1) AND (SELECT e FROM tbl3 WHERE f = 2)AND EXISTS (SELECT g FROM tbl4 LEFT JOIN tbl3 ON tbl4.h = tbl3.f);SELECT count(*) FROM pg_class where relname = 'pubview'AND relnamespace IN (SELECT OID FROM pg_namespace WHERE nspname = 'testviewschm2'); count -------     1(1 row)--Should be in temp object schemaCREATE   VIEW  mytempview AS SELECT * FROM tbl1 WHERE tbl1.aBETWEEN (SELECT d FROM tbl2 WHERE c = 1) AND (SELECT e FROM tbl3 WHERE f = 2)AND EXISTS (SELECT g FROM tbl4 LEFT JOIN tbl3 ON tbl4.h = tbl3.f)AND NOT EXISTS (SELECT g FROM tbl4 LEFT JOIN tmptbl ON tbl4.h = tmptbl.j);NOTICE:  view "mytempview" will be a temporary viewSELECT count(*) FROM pg_class where relname LIKE 'mytempview'And relnamespace IN (SELECT OID FROM pg_namespace WHERE nspname LIKE 'pg_temp%'); count -------     1(1 row)DROP SCHEMA temp_view_test CASCADE;NOTICE:  drop cascades to view temp_view_test.v9NOTICE:  drop cascades to rule _RETURN on view temp_view_test.v9NOTICE:  drop cascades to sequence temp_view_test.seq1NOTICE:  drop cascades to view temp_view_test.v8NOTICE:  drop cascades to rule _RETURN on view temp_view_test.v8NOTICE:  drop cascades to view temp_view_test.v7NOTICE:  drop cascades to rule _RETURN on view temp_view_test.v7NOTICE:  drop cascades to view temp_view_test.v6NOTICE:  drop cascades to rule _RETURN on view temp_view_test.v6NOTICE:  drop cascades to view temp_view_test.v5NOTICE:  drop cascades to rule _RETURN on view temp_view_test.v5NOTICE:  drop cascades to view temp_view_test.v4NOTICE:  drop cascades to rule _RETURN on view temp_view_test.v4NOTICE:  drop cascades to view temp_view_test.v3NOTICE:  drop cascades to rule _RETURN on view temp_view_test.v3NOTICE:  drop cascades to view temp_view_test.v2NOTICE:  drop cascades to rule _RETURN on view temp_view_test.v2NOTICE:  drop cascades to view temp_view_test.v1NOTICE:  drop cascades to rule _RETURN on view temp_view_test.v1NOTICE:  drop cascades to table temp_view_test.base_table2NOTICE:  drop cascades to rule _RETURN on view v5_tempNOTICE:  drop cascades to view v5_tempNOTICE:  drop cascades to table temp_view_test.base_tableNOTICE:  drop cascades to rule _RETURN on view v9_tempNOTICE:  drop cascades to view v9_tempNOTICE:  drop cascades to rule _RETURN on view v8_tempNOTICE:  drop cascades to view v8_tempNOTICE:  drop cascades to rule _RETURN on view v6_tempNOTICE:  drop cascades to view v6_tempNOTICE:  drop cascades to rule _RETURN on view v4_tempNOTICE:  drop cascades to view v4_tempNOTICE:  drop cascades to rule _RETURN on view v2_tempNOTICE:  drop cascades to view v2_tempNOTICE:  drop cascades to rule _RETURN on view v11_tempNOTICE:  drop cascades to view v11_tempNOTICE:  drop cascades to rule _RETURN on view v12_tempNOTICE:  drop cascades to view v12_tempNOTICE:  drop cascades to rule _RETURN on view v7_tempNOTICE:  drop cascades to view v7_tempNOTICE:  drop cascades to rule _RETURN on view v10_tempNOTICE:  drop cascades to view v10_tempDROP SCHEMA testviewschm2 CASCADE;NOTICE:  drop cascades to view pubviewNOTICE:  drop cascades to rule _RETURN on view pubviewNOTICE:  drop cascades to table tbl4NOTICE:  drop cascades to rule _RETURN on view mytempviewNOTICE:  drop cascades to view mytempviewNOTICE:  drop cascades to table tbl3NOTICE:  drop cascades to table tbl2NOTICE:  drop cascades to table tbl1NOTICE:  drop cascades to view nontemp4NOTICE:  drop cascades to rule _RETURN on view nontemp4NOTICE:  drop cascades to view nontemp3NOTICE:  drop cascades to rule _RETURN on view nontemp3NOTICE:  drop cascades to view nontemp2NOTICE:  drop cascades to rule _RETURN on view nontemp2NOTICE:  drop cascades to view nontemp1NOTICE:  drop cascades to rule _RETURN on view nontemp1NOTICE:  drop cascades to table t2NOTICE:  drop cascades to table t1NOTICE:  drop cascades to rule _RETURN on view temporal4NOTICE:  drop cascades to view temporal4NOTICE:  drop cascades to rule _RETURN on view temporal3NOTICE:  drop cascades to view temporal3NOTICE:  drop cascades to rule _RETURN on view temporal2NOTICE:  drop cascades to view temporal2NOTICE:  drop cascades to rule _RETURN on view temporal1NOTICE:  drop cascades to view temporal1SET search_path to public;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -