ESQL/C TRUNCATE TABLE results in DROP TABLE
От | Lee Kindness |
---|---|
Тема | ESQL/C TRUNCATE TABLE results in DROP TABLE |
Дата | |
Msg-id | 15288.17699.564891.383422@elsick.csl.co.uk обсуждение исходный текст |
Ответы |
Re: ESQL/C TRUNCATE TABLE results in DROP TABLE
|
Список | pgsql-interfaces |
Your name : Lee Kindness Your email address : lkindness@csl.co.uk System Configuration --------------------- Architecture (example: Intel Pentium) : Intel Pentium Operating System (example: Linux 2.0.26ELF) : Linux 2.2.16-22, RedHat 7.0 PostgreSQL version (example: PostgreSQL-7.1.3): PostgreSQL-7.1.3 Compiler used(example: gcc 2.95.2) : RPM Please enter a FULL description of your problem: ------------------------------------------------ 'TRUNCATE TABLE' in embedded SQL results in the table being dropped! Please describe a way to repeat the problem. Please try to provide a concise reproducible example, if at all possible: ---------------------------------------------------------------------- Execute the following commands: createdb copytestecho 'CREATE TABLE copytest (f1 INTEGER, f2 INTEGER);' psql copytestecho 'CREATE UNIQUE INDEX copytest_idxON copytest USING BTREE (f1, f2);' psql copytestecpg copy.pgcgcc copy.c -I /usr/include/pgsql -lecpg -lpq./a.out Which will result in the following output from 'a.out': Error -400: 'ERROR: Relation 'copytest' does not exist' in line 17. given the following source 'copytest.pgc': #include <stdlib.h>#include <time.h>#include <sys/time.h>#include <unistd.h> EXEC SQL INCLUDE sqlca; int main(int argc, char **argv){ EXEC SQL CONNECT TO copytest; if( sqlca.sqlcode != 0 ) return( 1 ); EXEC SQL TRUNCATE TABLE copytest; if( sqlca.sqlcode < 0 ) return( 1 ); EXEC SQL COPY copytest FROM '/tmp/copytest'; if( sqlca.sqlcode < 0 ) { printf("Error %ld: %s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc); return( 1 ); } EXEC SQL COMMIT; EXEC SQL DISCONNECT; return( 0 );} and the following '/tmp/copytest' (not used): 1 12 23 34 45 56 6 If you add an 'EXEC SQL COMMIT' after the TRUNCATE and then do a '\d' in psql the table is not shown - it has been dropped. If you know how this problem might be fixed, list the solution below: ---------------------------------------------------------------------
В списке pgsql-interfaces по дате отправления: