summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/test/sql
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2019-02-18 11:57:34 +0100
committerMichael Meskes <meskes@postgresql.org>2019-02-18 12:01:34 +0100
commit3530c508ca68d47cd5a30a1a28f99bdd23cb90c8 (patch)
treed37e90828daa871e6784261dad731ff33a4f6fea /src/interfaces/ecpg/test/sql
parent51be67346ef9dd29dd914ecac220044769efcad6 (diff)
Sync ECPG's CREATE TABLE AS statement with backend's.
Author: Higuchi-san ("Higuchi, Daisuke" <higuchi.daisuke@jp.fujitsu.com>)
Diffstat (limited to 'src/interfaces/ecpg/test/sql')
-rw-r--r--src/interfaces/ecpg/test/sql/Makefile1
-rw-r--r--src/interfaces/ecpg/test/sql/createtableas.pgc41
2 files changed, 42 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/test/sql/Makefile b/src/interfaces/ecpg/test/sql/Makefile
index b7bc034e4ef..d438b2ebcfe 100644
--- a/src/interfaces/ecpg/test/sql/Makefile
+++ b/src/interfaces/ecpg/test/sql/Makefile
@@ -7,6 +7,7 @@ TESTS = array array.c \
binary binary.c \
code100 code100.c \
copystdout copystdout.c \
+ createtableas createtableas.c \
define define.c \
desc desc.c \
sqlda sqlda.c \
diff --git a/src/interfaces/ecpg/test/sql/createtableas.pgc b/src/interfaces/ecpg/test/sql/createtableas.pgc
new file mode 100644
index 00000000000..72f7077a436
--- /dev/null
+++ b/src/interfaces/ecpg/test/sql/createtableas.pgc
@@ -0,0 +1,41 @@
+#include <stdlib.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+exec sql include ../regression;
+
+exec sql whenever sqlerror sqlprint;
+
+int
+main(void)
+{
+ EXEC SQL BEGIN DECLARE SECTION;
+ int id;
+ EXEC SQL END DECLARE SECTION;
+
+ ECPGdebug(1, stderr);
+ EXEC SQL connect to REGRESSDB1;
+
+ EXEC SQL SET AUTOCOMMIT TO ON;
+ EXEC SQL WHENEVER SQLWARNING SQLPRINT;
+ EXEC SQL WHENEVER SQLERROR SQLPRINT;
+
+ EXEC SQL CREATE TABLE cta_test (id int);
+ EXEC SQL INSERT INTO cta_test values (100);
+
+ EXEC SQL CREATE TABLE IF NOT EXISTS cta_test1 AS SELECT * FROM cta_test;
+ EXEC SQL SELECT id INTO :id FROM cta_test1;
+ printf("ID = %d\n", id);
+
+ EXEC SQL CREATE TABLE cta_test2 AS SELECT * FROM cta_test WITH NO DATA;
+ EXEC SQL SELECT count(id) INTO :id FROM cta_test2;
+ printf("ID = %d\n", id);
+
+ EXEC SQL DROP TABLE cta_test;
+ EXEC SQL DROP TABLE cta_test1;
+ EXEC SQL DROP TABLE cta_test2;
+ EXEC SQL DISCONNECT all;
+
+ return 0;
+}