mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Sync ECPG's CREATE TABLE AS statement with backend's.
Author: Higuchi-san ("Higuchi, Daisuke" <higuchi.daisuke@jp.fujitsu.com>)
			
			
This commit is contained in:
		@@ -34,7 +34,14 @@ CreateAsStmt: CREATE OptTemp TABLE create_as_target AS {FoundInto = 0;} SelectSt
 | 
				
			|||||||
			if (FoundInto == 1)
 | 
								if (FoundInto == 1)
 | 
				
			||||||
				mmerror(PARSE_ERROR, ET_ERROR, "CREATE TABLE AS cannot specify INTO");
 | 
									mmerror(PARSE_ERROR, ET_ERROR, "CREATE TABLE AS cannot specify INTO");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			$$ = cat_str(6, mm_strdup("create"), $2, mm_strdup("table"), $4, mm_strdup("as"), $7);
 | 
								$$ = cat_str(7, mm_strdup("create"), $2, mm_strdup("table"), $4, mm_strdup("as"), $7, $8);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					                |  CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS {FoundInto = 0;} SelectStmt opt_with_data
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (FoundInto == 1)
 | 
				
			||||||
 | 
									mmerror(PARSE_ERROR, ET_ERROR, "CREATE TABLE AS cannot specify INTO");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								$$ = cat_str(7, mm_strdup("create"), $2, mm_strdup("table if not exists"), $7, mm_strdup("as"), $10, $11);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		;
 | 
							;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,6 +32,7 @@ test: sql/array
 | 
				
			|||||||
test: sql/binary
 | 
					test: sql/binary
 | 
				
			||||||
test: sql/code100
 | 
					test: sql/code100
 | 
				
			||||||
test: sql/copystdout
 | 
					test: sql/copystdout
 | 
				
			||||||
 | 
					test: sql/createtableas
 | 
				
			||||||
test: sql/define
 | 
					test: sql/define
 | 
				
			||||||
test: sql/desc
 | 
					test: sql/desc
 | 
				
			||||||
test: sql/sqlda
 | 
					test: sql/sqlda
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										164
									
								
								src/interfaces/ecpg/test/expected/sql-createtableas.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								src/interfaces/ecpg/test/expected/sql-createtableas.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,164 @@
 | 
				
			|||||||
 | 
					/* Processed by ecpg (regression mode) */
 | 
				
			||||||
 | 
					/* These include files are added by the preprocessor */
 | 
				
			||||||
 | 
					#include <ecpglib.h>
 | 
				
			||||||
 | 
					#include <ecpgerrno.h>
 | 
				
			||||||
 | 
					#include <sqlca.h>
 | 
				
			||||||
 | 
					/* End of automatic include section */
 | 
				
			||||||
 | 
					#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#line 1 "createtableas.pgc"
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#line 1 "regression.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#line 6 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* exec sql whenever sqlerror  sqlprint ; */
 | 
				
			||||||
 | 
					#line 8 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					main(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/* exec sql begin declare section */
 | 
				
			||||||
 | 
							 
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					#line 14 "createtableas.pgc"
 | 
				
			||||||
 | 
					 int id ;
 | 
				
			||||||
 | 
					/* exec sql end declare section */
 | 
				
			||||||
 | 
					#line 15 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ECPGdebug(1, stderr);
 | 
				
			||||||
 | 
						{ ECPGconnect(__LINE__, 0, "ecpg1_regression" , NULL, NULL , NULL, 0); 
 | 
				
			||||||
 | 
					#line 18 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 18 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ ECPGsetcommit(__LINE__, "on", NULL);
 | 
				
			||||||
 | 
					#line 20 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 20 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* exec sql whenever sql_warning  sqlprint ; */
 | 
				
			||||||
 | 
					#line 21 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* exec sql whenever sqlerror  sqlprint ; */
 | 
				
			||||||
 | 
					#line 22 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table cta_test ( id int )", ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
 | 
					#line 24 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlwarn[0] == 'W') sqlprint();
 | 
				
			||||||
 | 
					#line 24 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 24 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into cta_test values ( 100 )", ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
 | 
					#line 25 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlwarn[0] == 'W') sqlprint();
 | 
				
			||||||
 | 
					#line 25 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 25 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table if not exists cta_test1 as select * from cta_test", ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
 | 
					#line 27 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlwarn[0] == 'W') sqlprint();
 | 
				
			||||||
 | 
					#line 27 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 27 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select id from cta_test1", ECPGt_EOIT, 
 | 
				
			||||||
 | 
						ECPGt_int,&(id),(long)1,(long)1,sizeof(int), 
 | 
				
			||||||
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
 | 
				
			||||||
 | 
					#line 28 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlwarn[0] == 'W') sqlprint();
 | 
				
			||||||
 | 
					#line 28 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 28 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						printf("ID = %d\n", id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table cta_test2 as select * from cta_test with no data", ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
 | 
					#line 31 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlwarn[0] == 'W') sqlprint();
 | 
				
			||||||
 | 
					#line 31 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 31 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select count ( id ) from cta_test2", ECPGt_EOIT, 
 | 
				
			||||||
 | 
						ECPGt_int,&(id),(long)1,(long)1,sizeof(int), 
 | 
				
			||||||
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
 | 
				
			||||||
 | 
					#line 32 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlwarn[0] == 'W') sqlprint();
 | 
				
			||||||
 | 
					#line 32 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 32 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						printf("ID = %d\n", id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table cta_test", ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
 | 
					#line 35 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlwarn[0] == 'W') sqlprint();
 | 
				
			||||||
 | 
					#line 35 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 35 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table cta_test1", ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
 | 
					#line 36 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlwarn[0] == 'W') sqlprint();
 | 
				
			||||||
 | 
					#line 36 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 36 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table cta_test2", ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
 | 
					#line 37 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlwarn[0] == 'W') sqlprint();
 | 
				
			||||||
 | 
					#line 37 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 37 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ ECPGdisconnect(__LINE__, "ALL");
 | 
				
			||||||
 | 
					#line 38 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlwarn[0] == 'W') sqlprint();
 | 
				
			||||||
 | 
					#line 38 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			||||||
 | 
					#line 38 "createtableas.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										66
									
								
								src/interfaces/ecpg/test/expected/sql-createtableas.stderr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								src/interfaces/ecpg/test/expected/sql-createtableas.stderr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
				
			|||||||
 | 
					[NO_PID]: ECPGdebug: set to 1
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ECPGconnect: opening database ecpg1_regression on <DEFAULT> port <DEFAULT>  
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ECPGsetcommit on line 20: action "on"; connection "ecpg1_regression"
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 24: query: create table cta_test ( id int ); with 0 parameter(s) on connection ecpg1_regression
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 24: using PQexec
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_process_output on line 24: OK: CREATE TABLE
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 25: query: insert into cta_test values ( 100 ); with 0 parameter(s) on connection ecpg1_regression
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 25: using PQexec
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_process_output on line 25: OK: INSERT 0 1
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 27: query: create table if not exists cta_test1 as select * from cta_test; with 0 parameter(s) on connection ecpg1_regression
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 27: using PQexec
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_process_output on line 27: OK: SELECT 1
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 28: query: select id from cta_test1; with 0 parameter(s) on connection ecpg1_regression
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 28: using PQexec
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_process_output on line 28: correctly got 1 tuples with 1 fields
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_get_data on line 28: RESULT: 100 offset: -1; array: no
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 31: query: create table cta_test2 as select * from cta_test with no data; with 0 parameter(s) on connection ecpg1_regression
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 31: using PQexec
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_process_output on line 31: OK: CREATE TABLE AS
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 32: query: select count ( id ) from cta_test2; with 0 parameter(s) on connection ecpg1_regression
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 32: using PQexec
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_process_output on line 32: correctly got 1 tuples with 1 fields
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_get_data on line 32: RESULT: 0 offset: -1; array: no
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 35: query: drop table cta_test; with 0 parameter(s) on connection ecpg1_regression
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 35: using PQexec
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_process_output on line 35: OK: DROP TABLE
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 36: query: drop table cta_test1; with 0 parameter(s) on connection ecpg1_regression
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 36: using PQexec
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_process_output on line 36: OK: DROP TABLE
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 37: query: drop table cta_test2; with 0 parameter(s) on connection ecpg1_regression
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_execute on line 37: using PQexec
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_process_output on line 37: OK: DROP TABLE
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
 | 
					[NO_PID]: ecpg_finish: connection ecpg1_regression closed
 | 
				
			||||||
 | 
					[NO_PID]: sqlca: code: 0, state: 00000
 | 
				
			||||||
@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					ID = 100
 | 
				
			||||||
 | 
					ID = 0
 | 
				
			||||||
@@ -7,6 +7,7 @@ TESTS = array array.c \
 | 
				
			|||||||
	binary binary.c \
 | 
						binary binary.c \
 | 
				
			||||||
	code100 code100.c \
 | 
						code100 code100.c \
 | 
				
			||||||
        copystdout copystdout.c \
 | 
					        copystdout copystdout.c \
 | 
				
			||||||
 | 
						createtableas createtableas.c \
 | 
				
			||||||
	define define.c \
 | 
						define define.c \
 | 
				
			||||||
        desc desc.c \
 | 
					        desc desc.c \
 | 
				
			||||||
        sqlda sqlda.c \
 | 
					        sqlda sqlda.c \
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										41
									
								
								src/interfaces/ecpg/test/sql/createtableas.pgc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								src/interfaces/ecpg/test/sql/createtableas.pgc
									
									
									
									
									
										Normal file
									
								
							@@ -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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user