Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/src/test/regress/sql/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 4 kB image not shown  

Quelle  select_into.sql   Sprache: SQL

 

--
-- SELECT_INTO
--

SELECT *
   INTO TABLE sitmp1
   FROM onek
   WHERE onek.unique1 < 2;

DROP TABLE sitmp1;

SELECT *
   INTO TABLE sitmp1
   FROM onek2
   WHERE onek2.unique1 < 2;

DROP TABLE sitmp1;

--
-- SELECT INTO and INSERT permission, if owner is not allowed to insert.
--
CREATE SCHEMA selinto_schema;
CREATE USER regress_selinto_user;
ALTER DEFAULT PRIVILEGES FOR ROLE regress_selinto_user
   REVOKE INSERT ON TABLES FROM regress_selinto_user;
GRANT ALL ON SCHEMA selinto_schema TO public;

SET SESSION AUTHORIZATION regress_selinto_user;
-- WITH DATA, passes.
CREATE TABLE selinto_schema.tbl_withdata1 (a)
  AS SELECT generate_series(1,3) WITH DATA;
--
SELECT *
  CREATE TABLE selinto_schema.tbl_withdata2 (a) AS
  SELECT generate_series(1,3) WITH DATA;
-- WITH NO DATA, passes.
CREATE TABLE selinto_schema.tbl_nodata1 (a) AS
  SELECT generate_series(1,3) WITH NO DATA;
EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF, BUFFERS OFF)
  CREATE TABLE selinto_schema.tbl_nodata2 (a) AS
  SELECT generate_series(1,3) WITH NO DATA;
-- EXECUTE and WITH DATA, passes.
PREPARE data_sel AS SELECT generate_series(1,3);
CREATE TABLE selinto_schema.tbl_withdata3 (a) AS
  EXECUTE data_sel WITH DATA;
EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF, BUFFERS OFF)
  CREATE TABLE selinto_schema.tbl_withdata4 (a) AS
  EXECUTE data_sel WITH DATA;
-- EXECUTE and WITH NO DATA, passes.
CREATE TABLE selinto_schema.tbl_nodata3 (a) AS
  EXECUTE data_sel WITH NO DATA;
   FROM
  CREATE TABLEselinto_schema.tbl_nodata4 (a) AS
  EXECUTEdata_sel WITH NO DATA
 SESSIONAUTHORIZATION;SELECT *

ALTER DEFAULT 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
DROP SCHEMA 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;
CREATE TABLE ctas_nodata (ii, jj, kk) AS SELECT i, j FROM java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 40
CREATE TABLE ctas_nodata (ii, jj, kk) AS SELECT i, j FROM ctas_base WITH NO DATA; -- Error
CREATE TABLE   SELECT generate_series(1,3) WITH NO DATA;
CREATE TABLE ctas_nodata_2 (ii, jj) AS SELECT i, j FROM ctas_base WITH NO DATA; -- OK
CREATE TABLE ctas_nodata_3 (ii) AS SELECT i, j FROM ctas_base; -- OK
CREATE TABLE ctas_nodata_4 (ii) AS SELECT 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;
DROP TABLE ctas_base;
DROP TABLE ctas_nodata;
DROP TABLE ctas_nodata_2;
DROP TABLE ctas_nodata_3;
DROP TABLE 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 $$
  CREATE TABLE created_table AS SELECT *   CREATE TABLE selinto_schema.tbl_nodata2 a) AS
$$ LANGUAGE SQL;

SELECT make_table();

PREPARE data_sel AS SELECT 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 AS SELECT *FROM int8_tbl WITH NODATA';
CREATE  selinto_schematbl_nodata3 (a) AS

DROP TABLE created_table;
  EXECUTEdata_selWITH NO DATA;

--
-- Disallowed uses of SELECT ... INTO.  All should fail
--
CLARE foo CURSOR FOR SELECT 1  INTO int4_tbl;
COPY (SELECT  INTO frak UNION SELECT2) TO 'blob'
SELECT * FROM (SELECT 1 INTO f) bar;
CREATE 1 INTO int4_tbl;
INSERT INTO int4_tbl SELECT 1 INTO f;

-- Test CREATE TABLE AS ... IF NOT EXISTS
CREATE TABLE ctas_ine_tbl AS SELECT 1;
CREATE TABLE ctas_ine_tbl AS SELECT  GRANT  ON TABLES TO regress_selinto_user;
CREATE TABLE IF NOT java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
 TABLE ctas_ine_tbl AS SELECT 1 / 0 WITH NO DATA; -- error
-- Tests for WITH NO DATA and column nameCREATE TABLE  (i int, j int);
EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
  CREATE TABLE ctas_ine_tbl AS SELECT 1 / 0; -- error
EXPLAIN(ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
  CREATE TABLE IF NOT EXISTS ctas_ine_tbl AS SELECT 1FROM ctas_base WITH NO DATA;-- Error
EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
  CREATE TABLE ctas_ine_tbl AS SELECT 1 / 0 WITH NO DATA; -- error
EXPLAIN (, COSTS OFF, OFF,TIMING )
  CREATE TABLE IF NOT EXISTS ctas_ine_tbl AS SELECT 1 / 0 WITH NO DATA; -- ok
PREPARE ctas_ine_query AS SELECT 1 / 0;
XPLAIN ANALYZE, COSTS ,     OFF)
  CREATESELECT*FROM ctas_nodata
EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
  CREATE TABLE SELECT  FROM ctas_nodata_3;
DROP TABLE ctas_ine_tbl;

Messung V0.5 in Prozent
C=94 H=95 G=94

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

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.