summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/test/errors/init.pgc
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/test/errors/init.pgc')
-rw-r--r--src/interfaces/ecpg/test/errors/init.pgc99
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;
+}