diff options
Diffstat (limited to 'src/interfaces/ecpg/test/errors/init.pgc')
| -rw-r--r-- | src/interfaces/ecpg/test/errors/init.pgc | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/test/errors/init.pgc b/src/interfaces/ecpg/test/errors/init.pgc new file mode 100644 index 0000000000..34b1a21e89 --- /dev/null +++ b/src/interfaces/ecpg/test/errors/init.pgc @@ -0,0 +1,99 @@ +exec sql include sqlca; + +enum e { ENUM0, ENUM1 }; +struct sa { int member; }; + +int +fa(void) +{ + printf("in fa\n"); + return 2; +} + +int +fb(int x) +{ + printf("in fb (%d)\n", x); + return x; +} + +int +fc(const char *x) +{ + printf("in fc (%s)\n", x); + return *x; +} + +int fd(const char *x,int i) +{ + printf("in fd (%s, %d)\n", x, i); + return (*x)*i; +} + +int fe(enum e x) +{ + printf("in fe (%d)\n", (int) x); + return (int)x; +} + +void sqlnotice(char *notice, short trans) +{ + if (!notice) + notice = "-empty-"; + printf("in sqlnotice (%s, %d)\n", notice, trans); +} + +exec sql define NONO 0; + +#define YES 1 + +#ifdef _cplusplus +namespace N +{ + static const int i=2; +}; +#endif + +int main(void) +{ + struct sa x,*y; + exec sql begin declare section; + int a=(int)2; + int b=2+2; + int b2=(14*7); + int d=x.member; + int g=fb(2); + int i=3^1; + int j=1?1:2; + + int e=y->member; + int c=10>>2; + bool h=2||1; + long iay /* = 1L */ ; + long long iax /* = 40000000000LL */ ; + exec sql end declare section; + + ECPGdebug(1, stderr); + + int f=fa(); + +#ifdef _cplusplus + exec sql begin declare section; + int k=N::i; /* compile error */ + exec sql end declare section; +#endif + + exec sql whenever sqlerror do fa(); + exec sql select now(); + exec sql whenever sqlerror do fb(20); + exec sql select now(); + exec sql whenever sqlerror do fc("50"); + exec sql select now(); + exec sql whenever sqlerror do fd("50",1); + exec sql select now(); + exec sql whenever sqlerror do fe(ENUM0); + exec sql select now(); + exec sql whenever sqlerror do sqlnotice(NULL, NONO); + exec sql select now(); + return 0; +} |
