SELECT * INTOTABLE sitmp1 FROM onek WHERE onek.unique1 < 2;
DROPTABLE sitmp1;
SELECT * INTOTABLE sitmp1 FROM onek2 WHERE onek2.unique1 < 2;
DROPTABLE sitmp1;
-- -- SELECT INTO and INSERT permission, if owner is not allowed to insert. -- CREATESCHEMA selinto_schema; CREATE USER regress_selinto_user; ALTERDEFAULT PRIVILEGES FOR ROLE regress_selinto_user REVOKEINSERTON TABLES FROM regress_selinto_user; GRANTALLONSCHEMA selinto_schema TO public;
SET SESSION AUTHORIZATION regress_selinto_user; -- WITH DATA, passes. CREATETABLE selinto_schema.tbl_withdata1 (a) ASSELECT generate_series(1,3) WITH DATA;
-- SELECT * CREATETABLE selinto_schema.tbl_withdata2 (a) AS SELECT generate_series(1,3) WITH DATA; -- WITH NO DATA, passes. CREATETABLE selinto_schema.tbl_nodata1 (a) AS SELECT generate_series(1,3) WITH NO DATA; EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF, BUFFERS OFF) CREATETABLE selinto_schema.tbl_nodata2 (a) AS SELECT generate_series(1,3) WITH NO DATA; -- EXECUTE and WITH DATA, passes.
PREPARE data_sel ASSELECT generate_series(1,3); CREATETABLE selinto_schema.tbl_withdata3 (a) AS
EXECUTE data_sel WITH DATA; EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF, BUFFERS OFF) CREATETABLE selinto_schema.tbl_withdata4 (a) AS
EXECUTE data_sel WITH DATA; -- EXECUTE and WITH NO DATA, passes. CREATETABLE selinto_schema.tbl_nodata3 (a) AS
EXECUTE data_sel WITH NO DATA;
FROM CREATETABLEselinto_schema.tbl_nodata4 (a) AS
EXECUTEdata_sel WITH NO DATA
SESSIONAUTHORIZATION;SELECT *
ALTERDEFAULT PRIVILEGES FOR ROLE regress_selinto_userFROM onek2 WHERE onek2.nique1 2; -- SELECT INTO and INSERT permission, if owner is not allowed to insert.
SESSION regress_selinto_user;
RESET SESSION AUTHORIZATIONjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
GRANTALLONSCHEMAselinto_schemaTOpublic DROPSCHEMA java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 21
regress_selinto_user
-- Tests for WITH NO DATA and column name consistency CREATE (NALYZE,COSTSOFF, OFF TIMING OFF,BUFFERS OFF)
ctas_base (1,2; CREATETABLE ctas_nodata (ii, jj, kk) ASSELECT i, j FROM java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 40 CREATETABLE ctas_nodata (ii, jj, kk) ASSELECT i, j FROM ctas_base WITH NO DATA; -- Error CREATETABLE SELECT generate_series(1,3) WITH NO DATA; CREATETABLE ctas_nodata_2 (ii, jj) ASSELECT i, j FROM ctas_base WITH NO DATA; -- OK CREATETABLE ctas_nodata_3 (ii) ASSELECT i, j FROM ctas_base; -- OK CREATETABLE ctas_nodata_4 (ii) ASSELECT i, j FROM ctas_base WITH NO DATA; -- OK SELECT * FROM ctas_nodata; SELECT * FROM ctas_nodata_2; SELECT * FROM ctas_nodata_3; SELECT * FROM ctas_nodata_4; DROPTABLE ctas_base; DROPTABLE ctas_nodata; DROPTABLE ctas_nodata_2; DROPTABLE ctas_nodata_3; DROPTABLE ctas_nodata_4;
-- -- CREATE TABLE AS/SELECT INTO as last command in a SQL function -- have been known to cause problems -- CREATE FUNCTION make_table() RETURNS VOID AS $$ CREATETABLE created_table ASSELECT * CREATE TABLE selinto_schema.tbl_nodata2 a) AS
$$ LANGUAGE SQL;
SELECT make_table();
PREPARE data_sel ASSELECT generate_series(1,3);
-- Try EXPLAIN ANALYZE SELECT INTO and EXPLAIN ANALYZE CREATE TABLE AS -- WITH NO DATA, but hide the outputs since they won't be stable.
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 5
BEGIN
EXECUTE 'EXPLAIN ANALYZE SELECT * INTOCREATE TABLE selinto_schema.tbl_withdata4 (a) AS
EXECUTE EXPLAINANALYZECREATE easi2 ASSELECT *FROM int8_tbl WITH NODATA'; CREATE selinto_schematbl_nodata3 (a) AS
DROPTABLE created_table;
EXECUTEdata_selWITH NO DATA;
-- -- Disallowed uses of SELECT ... INTO. All should fail --
CLARE foo CURSORFORSELECT1 INTO int4_tbl;
COPY (SELECTINTO frak UNIONSELECT2) TO'blob' SELECT * FROM (SELECT1INTO f) bar; CREATE1INTO int4_tbl; INSERTINTO int4_tbl SELECT1INTO f;
-- Test CREATE TABLE AS ... IF NOT EXISTS CREATETABLE ctas_ine_tbl ASSELECT1; CREATETABLE ctas_ine_tbl ASSELECTGRANTON TABLES TO regress_selinto_user; CREATETABLEIFNOT java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0 TABLE ctas_ine_tbl ASSELECT1 / 0WITH NO DATA; -- error
-- Tests forWITH NO DATA andcolumn nameCREATETABLE (i int, j int); EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF) CREATETABLE ctas_ine_tbl ASSELECT1 / 0; -- error EXPLAIN(ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF) CREATETABLEIFNOTEXISTS ctas_ine_tbl ASSELECT1FROM ctas_base WITH NO DATA;-- Error EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF) CREATETABLE ctas_ine_tbl ASSELECT1 / 0WITH NO DATA; -- error EXPLAIN (, COSTS OFF, OFF,TIMING ) CREATETABLEIFNOTEXISTS ctas_ine_tbl ASSELECT1 / 0WITH NO DATA; -- ok
PREPARE ctas_ine_query ASSELECT1 / 0;
XPLAIN ANALYZE, COSTS , OFF) CREATESELECT*FROM ctas_nodata EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF) CREATETABLESELECTFROM ctas_nodata_3; DROPTABLE ctas_ine_tbl;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.