From 3bb29f2e030d08723245f3c72410e5e2c58c8d70 Mon Sep 17 00:00:00 2001 From: prabatuty Date: Sat, 6 Nov 2010 05:17:29 +0000 Subject: [PATCH] adding test scripts --- test/sqlapi/Connect/Makefile | 97 ++++ test/sqlapi/Connect/common.h | 37 ++ test/sqlapi/Connect/conntest1.c | 26 + test/sqlapi/Connect/conntest10.c | 72 +++ test/sqlapi/Connect/conntest11.c | 72 +++ test/sqlapi/Connect/conntest2.c | 28 + test/sqlapi/Connect/conntest3.c | 32 ++ test/sqlapi/Connect/conntest4.c | 34 ++ test/sqlapi/Connect/conntest5.c | 67 +++ test/sqlapi/Connect/conntest6.c | 24 + test/sqlapi/Connect/conntest7.c | 20 + test/sqlapi/Connect/conntest8.c | 20 + test/sqlapi/Connect/conntest9.c | 20 + test/sqlapi/Connect/exp.test010 | 9 + test/sqlapi/Connect/exp.test010n | 9 + test/sqlapi/Connect/exp.test011 | 6 + test/sqlapi/Connect/exp.test011n | 6 + test/sqlapi/Csql/Connect/Makefile | 86 +++ test/sqlapi/Csql/Connect/TODO | 26 + .../sqlapi/Csql/Connect/closetwicewithoutconnect.c | 36 ++ test/sqlapi/Csql/Connect/common.h | 37 ++ test/sqlapi/Csql/Connect/connect5000times.c | 23 + .../sqlapi/Csql/Connect/connecttwicewithoutclose.c | 29 + test/sqlapi/Csql/Connect/conntest1.c | 29 + test/sqlapi/Csql/Connect/executeafterclose.c | 49 ++ test/sqlapi/Csql/Connect/exp.test001 | 5 + test/sqlapi/Csql/Connect/exp.test001n | 5 + test/sqlapi/Csql/Connect/exp.test002 | 3 + test/sqlapi/Csql/Connect/exp.test002n | 3 + test/sqlapi/Csql/Connect/exp.test003 | 2 + test/sqlapi/Csql/Connect/exp.test003n | 2 + test/sqlapi/Csql/Connect/exp.test004 | 3 + test/sqlapi/Csql/Connect/exp.test004n | 3 + test/sqlapi/Csql/Connect/exp.test005 | 4 + test/sqlapi/Csql/Connect/exp.test005n | 4 + test/sqlapi/Csql/Connect/exp.test006 | 5 + test/sqlapi/Csql/Connect/exp.test006n | 5 + test/sqlapi/Csql/Connect/exp.test007 | 7 + test/sqlapi/Csql/Connect/exp.test007n | 7 + test/sqlapi/Csql/Connect/exp.test008 | 5 + test/sqlapi/Csql/Connect/exp.test008n | 5 + test/sqlapi/Csql/Connect/exp.test009 | 11 + test/sqlapi/Csql/Connect/exp.test009n | 11 + test/sqlapi/Csql/Connect/fetchafterclose.c | 87 +++ test/sqlapi/Csql/Connect/prepareafterclose.c | 41 ++ test/sqlapi/Csql/Connect/transactionafterclose.c | 52 ++ test/sqlapi/Csql/Connect/userauthentication.c | 43 ++ test/sqlapi/Csql/DDLStmt/Makefile | 91 ++++ test/sqlapi/Csql/DDLStmt/TODO | 26 + test/sqlapi/Csql/DDLStmt/autoincreonalldatatype.c | 176 ++++++ test/sqlapi/Csql/DDLStmt/charvarcharrange.c | 85 +++ test/sqlapi/Csql/DDLStmt/common.h | 37 ++ .../Csql/DDLStmt/compositehashonalldatatype.c | 556 +++++++++++++++++++ test/sqlapi/Csql/DDLStmt/copystatement.c | 107 ++++ .../Csql/DDLStmt/createtablewithalldatatype.c | 54 ++ test/sqlapi/Csql/DDLStmt/defaultwithalldatatype.c | 194 +++++++ test/sqlapi/Csql/DDLStmt/exp.test001 | 4 + test/sqlapi/Csql/DDLStmt/exp.test001n | 4 + test/sqlapi/Csql/DDLStmt/exp.test002 | 18 + test/sqlapi/Csql/DDLStmt/exp.test002n | 18 + test/sqlapi/Csql/DDLStmt/exp.test003 | 7 + test/sqlapi/Csql/DDLStmt/exp.test003n | 7 + test/sqlapi/Csql/DDLStmt/exp.test004 | 44 ++ test/sqlapi/Csql/DDLStmt/exp.test004n | 44 ++ test/sqlapi/Csql/DDLStmt/exp.test005 | 19 + test/sqlapi/Csql/DDLStmt/exp.test005n | 19 + test/sqlapi/Csql/DDLStmt/exp.test006 | 14 + test/sqlapi/Csql/DDLStmt/exp.test006n | 14 + test/sqlapi/Csql/DDLStmt/exp.test007.ksh | 25 + test/sqlapi/Csql/DDLStmt/exp.test007n.ksh | 25 + test/sqlapi/Csql/DDLStmt/exp.test008.ksh | 169 ++++++ test/sqlapi/Csql/DDLStmt/exp.test008n.ksh | 169 ++++++ test/sqlapi/Csql/DDLStmt/exp.test009.ksh | 367 +++++++++++++ test/sqlapi/Csql/DDLStmt/exp.test009n.ksh | 367 +++++++++++++ test/sqlapi/Csql/DDLStmt/hashindexonalldatatype.c | 132 +++++ test/sqlapi/Csql/DDLStmt/notnullonalldatatype.c | 158 ++++++ test/sqlapi/Csql/DDLStmt/pkeyfkeyonalldatatype.c | 312 +++++++++++ test/sqlapi/Csql/DDLStmt/test007.ksh | 40 ++ test/sqlapi/Csql/DDLStmt/test007n.ksh | 40 ++ test/sqlapi/Csql/DDLStmt/test008.ksh | 43 ++ test/sqlapi/Csql/DDLStmt/test008n.ksh | 43 ++ test/sqlapi/Csql/DDLStmt/test009.ksh | 102 ++++ test/sqlapi/Csql/DDLStmt/test009n.ksh | 102 ++++ test/sqlapi/Csql/DDLStmt/treeindexonalldatatype.c | 162 ++++++ test/sqlapi/Csql/DMLStmt/Makefile | 131 +++++ test/sqlapi/Csql/DMLStmt/TODO | 0 test/sqlapi/Csql/DMLStmt/aggregate.c | 205 +++++++ test/sqlapi/Csql/DMLStmt/alldmlonalldatatype.c | 267 +++++++++ test/sqlapi/Csql/DMLStmt/autoincrement.c | 122 +++++ test/sqlapi/Csql/DMLStmt/common.h | 37 ++ test/sqlapi/Csql/DMLStmt/defaultwithalldatatype.c | 194 +++++++ .../Csql/DMLStmt/deletealloperatoronalldatatype.c | 268 +++++++++ test/sqlapi/Csql/DMLStmt/dmloncopiedtable.c | 260 +++++++++ test/sqlapi/Csql/DMLStmt/exp.test001 | 28 + test/sqlapi/Csql/DMLStmt/exp.test001n | 28 + test/sqlapi/Csql/DMLStmt/exp.test002 | 12 + test/sqlapi/Csql/DMLStmt/exp.test002n | 12 + test/sqlapi/Csql/DMLStmt/exp.test003 | 99 ++++ test/sqlapi/Csql/DMLStmt/exp.test003n | 99 ++++ test/sqlapi/Csql/DMLStmt/exp.test004 | 28 + test/sqlapi/Csql/DMLStmt/exp.test004n | 28 + test/sqlapi/Csql/DMLStmt/exp.test005 | 25 + test/sqlapi/Csql/DMLStmt/exp.test005n | 25 + test/sqlapi/Csql/DMLStmt/exp.test006 | 31 ++ test/sqlapi/Csql/DMLStmt/exp.test006n | 31 ++ test/sqlapi/Csql/DMLStmt/exp.test007 | 29 + test/sqlapi/Csql/DMLStmt/exp.test008 | 56 ++ test/sqlapi/Csql/DMLStmt/exp.test008n | 56 ++ test/sqlapi/Csql/DMLStmt/exp.test009 | 12 + test/sqlapi/Csql/DMLStmt/exp.test009n | 12 + test/sqlapi/Csql/DMLStmt/exp.test010 | 22 + test/sqlapi/Csql/DMLStmt/exp.test010n | 22 + test/sqlapi/Csql/DMLStmt/exp.test011 | 18 + test/sqlapi/Csql/DMLStmt/exp.test011n | 18 + test/sqlapi/Csql/DMLStmt/exp.test012 | 34 ++ test/sqlapi/Csql/DMLStmt/exp.test012n | 34 ++ test/sqlapi/Csql/DMLStmt/exp.test013 | 15 + test/sqlapi/Csql/DMLStmt/exp.test013n | 15 + test/sqlapi/Csql/DMLStmt/exp.test014 | 30 + test/sqlapi/Csql/DMLStmt/exp.test014n | 30 + test/sqlapi/Csql/DMLStmt/exp.test015 | 20 + test/sqlapi/Csql/DMLStmt/exp.test015n | 20 + test/sqlapi/Csql/DMLStmt/exp.test016 | 20 + test/sqlapi/Csql/DMLStmt/exp.test016n | 20 + test/sqlapi/Csql/DMLStmt/exp.test017 | 9 + test/sqlapi/Csql/DMLStmt/exp.test017n | 9 + test/sqlapi/Csql/DMLStmt/exp.test018 | 18 + test/sqlapi/Csql/DMLStmt/exp.test018n | 18 + test/sqlapi/Csql/DMLStmt/insertonalldatatype.c | 140 +++++ test/sqlapi/Csql/DMLStmt/notnullonalldatatype.c | 336 ++++++++++++ test/sqlapi/Csql/DMLStmt/null_alldatatype.c | 325 +++++++++++ test/sqlapi/Csql/DMLStmt/pkeyfkeydml.c | 94 ++++ test/sqlapi/Csql/DMLStmt/rollbackafterdml.c | 250 +++++++++ .../Csql/DMLStmt/selectalloperatoronalldatatype.c | 606 +++++++++++++++++++++ test/sqlapi/Csql/DMLStmt/stmtpre5000times.c | 89 +++ test/sqlapi/Csql/DMLStmt/uniquekeyviolation.c | 201 +++++++ .../Csql/DMLStmt/updisnullisnotnullonalldatatype.c | 305 +++++++++++ test/sqlapi/Csql/DMLStmt/updlogicalonalldatatype.c | 240 ++++++++ test/sqlapi/Csql/DMLStmt/updrangeonalldatatype.c | 221 ++++++++ .../Csql/DMLStmt/updrelationalonalldatatype.c | 597 ++++++++++++++++++++ test/sqlapi/Csql/Isolation/Makefile | 107 ++++ test/sqlapi/Csql/Isolation/common.h | 117 ++++ test/sqlapi/Csql/Isolation/isotest1.c | 96 ++++ test/sqlapi/Csql/Isolation/isotest10.c | 105 ++++ test/sqlapi/Csql/Isolation/isotest2.c | 103 ++++ test/sqlapi/Csql/Isolation/isotest3.c | 111 ++++ test/sqlapi/Csql/Isolation/isotest4.c | 111 ++++ test/sqlapi/Csql/Isolation/isotest5.c | 112 ++++ test/sqlapi/Csql/Isolation/isotest6.c | 103 ++++ test/sqlapi/Csql/Isolation/isotest7.c | 103 ++++ test/sqlapi/Csql/Isolation/isotest8.c | 110 ++++ test/sqlapi/Csql/Isolation/isotest9.c | 128 +++++ test/sqlapi/Csql/Makefile | 18 + test/sqlapi/Csql/ParamStmt/Makefile | 51 ++ test/sqlapi/Csql/ParamStmt/TODO | 54 ++ test/sqlapi/Csql/ParamStmt/common.h | 37 ++ test/sqlapi/Csql/ParamStmt/exp.test001 | 136 +++++ test/sqlapi/Csql/ParamStmt/exp.test001n | 136 +++++ test/sqlapi/Csql/ParamStmt/exp.test002 | 14 + test/sqlapi/Csql/ParamStmt/exp.test002n | 14 + test/sqlapi/Csql/ParamStmt/paratest1.c | 137 +++++ test/sqlapi/Csql/ParamStmt/paratest2.c | 131 +++++ test/sqlapi/Csql/Transaction/TODO | 27 + test/sqlapi/Makefile | 18 + test/sqlapi/Parameter/Makefile | 86 +++ test/sqlapi/Parameter/common.h | 37 ++ test/sqlapi/Parameter/exp.test001 | 146 +++++ test/sqlapi/Parameter/exp.test001n | 146 +++++ test/sqlapi/Parameter/exp.test002 | 14 + test/sqlapi/Parameter/exp.test002n | 14 + test/sqlapi/Parameter/exp.test003 | 10 + test/sqlapi/Parameter/exp.test003n | 10 + test/sqlapi/Parameter/exp.test004 | 17 + test/sqlapi/Parameter/exp.test004.x86_64 | 17 + test/sqlapi/Parameter/exp.test004n | 17 + test/sqlapi/Parameter/exp.test004n.x86_64 | 17 + test/sqlapi/Parameter/exp.test005 | 24 + test/sqlapi/Parameter/exp.test005n | 24 + test/sqlapi/Parameter/exp.test006 | 16 + test/sqlapi/Parameter/exp.test006.x86_64 | 16 + test/sqlapi/Parameter/exp.test006n | 16 + test/sqlapi/Parameter/exp.test006n.x86_64 | 16 + test/sqlapi/Parameter/exp.test007 | 24 + test/sqlapi/Parameter/exp.test007n | 24 + test/sqlapi/Parameter/paratest1.c | 141 +++++ test/sqlapi/Parameter/paratest100.c | 157 ++++++ test/sqlapi/Parameter/paratest2.c | 133 +++++ test/sqlapi/Parameter/paratest3.c | 153 ++++++ test/sqlapi/Parameter/paratest4.c | 155 ++++++ test/sqlapi/Parameter/paratest5.c | 159 ++++++ test/sqlapi/Parameter/paratest6.c | 207 +++++++ test/sqlapi/Parameter/paratest7date.c | 140 +++++ test/sqlapi/Parameter/paratest8now.c | 140 +++++ test/sqlapi/Select/Makefile | 116 ++++ test/sqlapi/Select/aggseltest14.c | 170 ++++++ test/sqlapi/Select/common.h | 37 ++ test/sqlapi/Select/create.sql | 61 +++ test/sqlapi/Select/csql.conf | 70 +++ test/sqlapi/Select/exp.test001 | 11 + test/sqlapi/Select/exp.test002 | 62 +++ test/sqlapi/Select/exp.test005.ksh | 97 ++++ test/sqlapi/Select/exp.test010 | 62 +++ test/sqlapi/Select/exp.test010n | 62 +++ test/sqlapi/Select/exp.test011 | 9 + test/sqlapi/Select/exp.test013 | 45 ++ test/sqlapi/Select/exp.test013n | 45 ++ test/sqlapi/Select/exp.test014 | 30 + test/sqlapi/Select/exp.test016 | 33 ++ test/sqlapi/Select/exp.test016n | 33 ++ test/sqlapi/Select/selecttest1.c | 110 ++++ test/sqlapi/Select/selecttest10.c | 130 +++++ test/sqlapi/Select/selecttest11.c | 112 ++++ test/sqlapi/Select/selecttest12.c | 149 +++++ test/sqlapi/Select/selecttest13.c | 194 +++++++ test/sqlapi/Select/selecttest14.c | 54 ++ test/sqlapi/Select/selecttest2.c | 130 +++++ test/sqlapi/Select/selecttest3.c | 83 +++ test/sqlapi/Select/selecttest4.c | 66 +++ test/sqlapi/Select/selecttest5.c | 28 + test/sqlapi/Select/selecttest6.c | 73 +++ test/sqlapi/Select/selecttest7.c | 79 +++ test/sqlapi/Select/selecttest8.c | 42 ++ test/sqlapi/Select/selecttest9.c | 37 ++ test/sqlapi/Select/singleconn.c | 191 +++++++ test/sqlapi/Select/test005.ksh | 28 + 225 files changed, 17476 insertions(+) create mode 100644 test/sqlapi/Connect/Makefile create mode 100644 test/sqlapi/Connect/common.h create mode 100644 test/sqlapi/Connect/conntest1.c create mode 100644 test/sqlapi/Connect/conntest10.c create mode 100644 test/sqlapi/Connect/conntest11.c create mode 100644 test/sqlapi/Connect/conntest2.c create mode 100644 test/sqlapi/Connect/conntest3.c create mode 100644 test/sqlapi/Connect/conntest4.c create mode 100644 test/sqlapi/Connect/conntest5.c create mode 100644 test/sqlapi/Connect/conntest6.c create mode 100644 test/sqlapi/Connect/conntest7.c create mode 100644 test/sqlapi/Connect/conntest8.c create mode 100644 test/sqlapi/Connect/conntest9.c create mode 100644 test/sqlapi/Connect/exp.test010 create mode 100644 test/sqlapi/Connect/exp.test010n create mode 100644 test/sqlapi/Connect/exp.test011 create mode 100644 test/sqlapi/Connect/exp.test011n create mode 100644 test/sqlapi/Csql/Connect/Makefile create mode 100644 test/sqlapi/Csql/Connect/TODO create mode 100644 test/sqlapi/Csql/Connect/closetwicewithoutconnect.c create mode 100644 test/sqlapi/Csql/Connect/common.h create mode 100644 test/sqlapi/Csql/Connect/connect5000times.c create mode 100644 test/sqlapi/Csql/Connect/connecttwicewithoutclose.c create mode 100644 test/sqlapi/Csql/Connect/conntest1.c create mode 100644 test/sqlapi/Csql/Connect/executeafterclose.c create mode 100644 test/sqlapi/Csql/Connect/exp.test001 create mode 100644 test/sqlapi/Csql/Connect/exp.test001n create mode 100644 test/sqlapi/Csql/Connect/exp.test002 create mode 100644 test/sqlapi/Csql/Connect/exp.test002n create mode 100644 test/sqlapi/Csql/Connect/exp.test003 create mode 100644 test/sqlapi/Csql/Connect/exp.test003n create mode 100644 test/sqlapi/Csql/Connect/exp.test004 create mode 100644 test/sqlapi/Csql/Connect/exp.test004n create mode 100644 test/sqlapi/Csql/Connect/exp.test005 create mode 100644 test/sqlapi/Csql/Connect/exp.test005n create mode 100644 test/sqlapi/Csql/Connect/exp.test006 create mode 100644 test/sqlapi/Csql/Connect/exp.test006n create mode 100644 test/sqlapi/Csql/Connect/exp.test007 create mode 100644 test/sqlapi/Csql/Connect/exp.test007n create mode 100644 test/sqlapi/Csql/Connect/exp.test008 create mode 100644 test/sqlapi/Csql/Connect/exp.test008n create mode 100644 test/sqlapi/Csql/Connect/exp.test009 create mode 100644 test/sqlapi/Csql/Connect/exp.test009n create mode 100644 test/sqlapi/Csql/Connect/fetchafterclose.c create mode 100644 test/sqlapi/Csql/Connect/prepareafterclose.c create mode 100644 test/sqlapi/Csql/Connect/transactionafterclose.c create mode 100644 test/sqlapi/Csql/Connect/userauthentication.c create mode 100644 test/sqlapi/Csql/DDLStmt/Makefile create mode 100644 test/sqlapi/Csql/DDLStmt/TODO create mode 100644 test/sqlapi/Csql/DDLStmt/autoincreonalldatatype.c create mode 100644 test/sqlapi/Csql/DDLStmt/charvarcharrange.c create mode 100644 test/sqlapi/Csql/DDLStmt/common.h create mode 100644 test/sqlapi/Csql/DDLStmt/compositehashonalldatatype.c create mode 100644 test/sqlapi/Csql/DDLStmt/copystatement.c create mode 100644 test/sqlapi/Csql/DDLStmt/createtablewithalldatatype.c create mode 100644 test/sqlapi/Csql/DDLStmt/defaultwithalldatatype.c create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test001 create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test001n create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test002 create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test002n create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test003 create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test003n create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test004 create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test004n create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test005 create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test005n create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test006 create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test006n create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test007.ksh create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test007n.ksh create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test008.ksh create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test008n.ksh create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test009.ksh create mode 100644 test/sqlapi/Csql/DDLStmt/exp.test009n.ksh create mode 100644 test/sqlapi/Csql/DDLStmt/hashindexonalldatatype.c create mode 100644 test/sqlapi/Csql/DDLStmt/notnullonalldatatype.c create mode 100644 test/sqlapi/Csql/DDLStmt/pkeyfkeyonalldatatype.c create mode 100755 test/sqlapi/Csql/DDLStmt/test007.ksh create mode 100755 test/sqlapi/Csql/DDLStmt/test007n.ksh create mode 100755 test/sqlapi/Csql/DDLStmt/test008.ksh create mode 100755 test/sqlapi/Csql/DDLStmt/test008n.ksh create mode 100755 test/sqlapi/Csql/DDLStmt/test009.ksh create mode 100755 test/sqlapi/Csql/DDLStmt/test009n.ksh create mode 100644 test/sqlapi/Csql/DDLStmt/treeindexonalldatatype.c create mode 100644 test/sqlapi/Csql/DMLStmt/Makefile create mode 100644 test/sqlapi/Csql/DMLStmt/TODO create mode 100644 test/sqlapi/Csql/DMLStmt/aggregate.c create mode 100644 test/sqlapi/Csql/DMLStmt/alldmlonalldatatype.c create mode 100644 test/sqlapi/Csql/DMLStmt/autoincrement.c create mode 100644 test/sqlapi/Csql/DMLStmt/common.h create mode 100644 test/sqlapi/Csql/DMLStmt/defaultwithalldatatype.c create mode 100644 test/sqlapi/Csql/DMLStmt/deletealloperatoronalldatatype.c create mode 100644 test/sqlapi/Csql/DMLStmt/dmloncopiedtable.c create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test001 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test001n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test002 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test002n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test003 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test003n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test004 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test004n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test005 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test005n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test006 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test006n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test007 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test008 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test008n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test009 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test009n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test010 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test010n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test011 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test011n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test012 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test012n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test013 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test013n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test014 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test014n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test015 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test015n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test016 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test016n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test017 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test017n create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test018 create mode 100644 test/sqlapi/Csql/DMLStmt/exp.test018n create mode 100644 test/sqlapi/Csql/DMLStmt/insertonalldatatype.c create mode 100644 test/sqlapi/Csql/DMLStmt/notnullonalldatatype.c create mode 100644 test/sqlapi/Csql/DMLStmt/null_alldatatype.c create mode 100644 test/sqlapi/Csql/DMLStmt/pkeyfkeydml.c create mode 100644 test/sqlapi/Csql/DMLStmt/rollbackafterdml.c create mode 100644 test/sqlapi/Csql/DMLStmt/selectalloperatoronalldatatype.c create mode 100644 test/sqlapi/Csql/DMLStmt/stmtpre5000times.c create mode 100644 test/sqlapi/Csql/DMLStmt/uniquekeyviolation.c create mode 100644 test/sqlapi/Csql/DMLStmt/updisnullisnotnullonalldatatype.c create mode 100644 test/sqlapi/Csql/DMLStmt/updlogicalonalldatatype.c create mode 100644 test/sqlapi/Csql/DMLStmt/updrangeonalldatatype.c create mode 100644 test/sqlapi/Csql/DMLStmt/updrelationalonalldatatype.c create mode 100644 test/sqlapi/Csql/Isolation/Makefile create mode 100644 test/sqlapi/Csql/Isolation/common.h create mode 100644 test/sqlapi/Csql/Isolation/isotest1.c create mode 100644 test/sqlapi/Csql/Isolation/isotest10.c create mode 100644 test/sqlapi/Csql/Isolation/isotest2.c create mode 100644 test/sqlapi/Csql/Isolation/isotest3.c create mode 100644 test/sqlapi/Csql/Isolation/isotest4.c create mode 100644 test/sqlapi/Csql/Isolation/isotest5.c create mode 100644 test/sqlapi/Csql/Isolation/isotest6.c create mode 100644 test/sqlapi/Csql/Isolation/isotest7.c create mode 100644 test/sqlapi/Csql/Isolation/isotest8.c create mode 100644 test/sqlapi/Csql/Isolation/isotest9.c create mode 100644 test/sqlapi/Csql/Makefile create mode 100644 test/sqlapi/Csql/ParamStmt/Makefile create mode 100644 test/sqlapi/Csql/ParamStmt/TODO create mode 100644 test/sqlapi/Csql/ParamStmt/common.h create mode 100644 test/sqlapi/Csql/ParamStmt/exp.test001 create mode 100644 test/sqlapi/Csql/ParamStmt/exp.test001n create mode 100644 test/sqlapi/Csql/ParamStmt/exp.test002 create mode 100644 test/sqlapi/Csql/ParamStmt/exp.test002n create mode 100644 test/sqlapi/Csql/ParamStmt/paratest1.c create mode 100644 test/sqlapi/Csql/ParamStmt/paratest2.c create mode 100644 test/sqlapi/Csql/Transaction/TODO create mode 100644 test/sqlapi/Makefile create mode 100644 test/sqlapi/Parameter/Makefile create mode 100644 test/sqlapi/Parameter/common.h create mode 100644 test/sqlapi/Parameter/exp.test001 create mode 100644 test/sqlapi/Parameter/exp.test001n create mode 100644 test/sqlapi/Parameter/exp.test002 create mode 100644 test/sqlapi/Parameter/exp.test002n create mode 100644 test/sqlapi/Parameter/exp.test003 create mode 100644 test/sqlapi/Parameter/exp.test003n create mode 100644 test/sqlapi/Parameter/exp.test004 create mode 100644 test/sqlapi/Parameter/exp.test004.x86_64 create mode 100644 test/sqlapi/Parameter/exp.test004n create mode 100644 test/sqlapi/Parameter/exp.test004n.x86_64 create mode 100644 test/sqlapi/Parameter/exp.test005 create mode 100644 test/sqlapi/Parameter/exp.test005n create mode 100644 test/sqlapi/Parameter/exp.test006 create mode 100644 test/sqlapi/Parameter/exp.test006.x86_64 create mode 100644 test/sqlapi/Parameter/exp.test006n create mode 100644 test/sqlapi/Parameter/exp.test006n.x86_64 create mode 100644 test/sqlapi/Parameter/exp.test007 create mode 100644 test/sqlapi/Parameter/exp.test007n create mode 100644 test/sqlapi/Parameter/paratest1.c create mode 100644 test/sqlapi/Parameter/paratest100.c create mode 100644 test/sqlapi/Parameter/paratest2.c create mode 100644 test/sqlapi/Parameter/paratest3.c create mode 100644 test/sqlapi/Parameter/paratest4.c create mode 100644 test/sqlapi/Parameter/paratest5.c create mode 100644 test/sqlapi/Parameter/paratest6.c create mode 100644 test/sqlapi/Parameter/paratest7date.c create mode 100644 test/sqlapi/Parameter/paratest8now.c create mode 100644 test/sqlapi/Select/Makefile create mode 100644 test/sqlapi/Select/aggseltest14.c create mode 100644 test/sqlapi/Select/common.h create mode 100644 test/sqlapi/Select/create.sql create mode 100644 test/sqlapi/Select/csql.conf create mode 100644 test/sqlapi/Select/exp.test001 create mode 100644 test/sqlapi/Select/exp.test002 create mode 100644 test/sqlapi/Select/exp.test005.ksh create mode 100644 test/sqlapi/Select/exp.test010 create mode 100644 test/sqlapi/Select/exp.test010n create mode 100644 test/sqlapi/Select/exp.test011 create mode 100644 test/sqlapi/Select/exp.test013 create mode 100644 test/sqlapi/Select/exp.test013n create mode 100644 test/sqlapi/Select/exp.test014 create mode 100644 test/sqlapi/Select/exp.test016 create mode 100644 test/sqlapi/Select/exp.test016n create mode 100644 test/sqlapi/Select/selecttest1.c create mode 100644 test/sqlapi/Select/selecttest10.c create mode 100644 test/sqlapi/Select/selecttest11.c create mode 100644 test/sqlapi/Select/selecttest12.c create mode 100644 test/sqlapi/Select/selecttest13.c create mode 100644 test/sqlapi/Select/selecttest14.c create mode 100644 test/sqlapi/Select/selecttest2.c create mode 100644 test/sqlapi/Select/selecttest3.c create mode 100644 test/sqlapi/Select/selecttest4.c create mode 100644 test/sqlapi/Select/selecttest5.c create mode 100644 test/sqlapi/Select/selecttest6.c create mode 100644 test/sqlapi/Select/selecttest7.c create mode 100644 test/sqlapi/Select/selecttest8.c create mode 100644 test/sqlapi/Select/selecttest9.c create mode 100644 test/sqlapi/Select/singleconn.c create mode 100755 test/sqlapi/Select/test005.ksh diff --git a/test/sqlapi/Connect/Makefile b/test/sqlapi/Connect/Makefile new file mode 100644 index 00000000..728e75a7 --- /dev/null +++ b/test/sqlapi/Connect/Makefile @@ -0,0 +1,97 @@ +OSNAME = $(shell uname -s) +PlatForm=notsupported +ifeq ($(OSNAME), SunOS) + CPlus = CC + CPlusFlags = -O2 -w $(COMPILER_FLAG) + SYSLIBS=-ldl -lnsl -lsocket -lposix4 + PlatForm=supported +endif +ifeq ($(OSNAME), Linux) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif +ifeq ($(OSNAME), FreeBSD) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif + + +INCL= -I$(CSQL_INSTALL_ROOT)/install/include -I../../../include +ifeq ($(BUILDTYPE), MMDB) +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcsqlsqlnw -lcsqlsqlnw +else +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcacheload -lcsqlsqlnw -lcsqlgw -lcsqlsqlnw -lcsqlodbcadapter +endif + +TARGETS = \ + test001 test001n\ + test002 test002n\ + test003 test003n\ + test004 test004n\ + test005 test005n\ + test006 test006n\ + test007 test007n\ + test008 test008n\ + test009 test009n\ + test010 test010n\ + test011 test011n + + +ifeq ($(PlatForm), supported) +all: $(TARGETS) +else +all: + echo "CSQL is not supported on $(OSNAME) platform" +endif + +test001:conntest1.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test001n:conntest1.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002:conntest2.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002n:conntest2.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003:conntest3.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003n:conntest3.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004:conntest4.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004n:conntest4.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005:conntest5.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005n:conntest5.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006:conntest6.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006n:conntest6.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test007:conntest7.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test007n:conntest7.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test008:conntest8.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test008n:conntest8.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test009:conntest9.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test009n:conntest9.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test010:conntest10.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test010n:conntest10.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test011:conntest11.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test011n:conntest11.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) + +clean: + rm -f ${TARGETS} diff --git a/test/sqlapi/Connect/common.h b/test/sqlapi/Connect/common.h new file mode 100644 index 00000000..f1ab199a --- /dev/null +++ b/test/sqlapi/Connect/common.h @@ -0,0 +1,37 @@ +#include +#include +#include + +AbsSqlConnection *createConnection() +{ +#ifdef NETWORK + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetwork); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKADAPTER + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkAdapter); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKGATEWAY + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkGateway); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#else + AbsSqlConnection *con = SqlFactory::createConnection(CSql); +#endif + return con; +} + +AbsSqlStatement *createStatement() +{ +#ifdef NETWORK + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetwork); +#elif defined NETWORKADAPTER + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkAdapter); +#elif defined NETWORKGATEWAY + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkGateway); +#else + AbsSqlStatement *stmt = SqlFactory::createStatement(CSql); +#endif + return stmt; +} diff --git a/test/sqlapi/Connect/conntest1.c b/test/sqlapi/Connect/conntest1.c new file mode 100644 index 00000000..41e421fa --- /dev/null +++ b/test/sqlapi/Connect/conntest1.c @@ -0,0 +1,26 @@ +/* connect ,disconnect and again connect ,it should pass. + + * AUTHOR : Jitendra Lenka + */ + +#include "common.h" + +int main() +{ + DbRetVal rv =OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + printf("Connection opened\n"); + delete con; + con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + printf("Test script failed \n"); + return 2; + } + printf("Connection closed\n"); + printf("Test script passed\n"); + delete con; + return 0; +} diff --git a/test/sqlapi/Connect/conntest10.c b/test/sqlapi/Connect/conntest10.c new file mode 100644 index 00000000..79156648 --- /dev/null +++ b/test/sqlapi/Connect/conntest10.c @@ -0,0 +1,72 @@ +/* create table T1 ,ISERT ,UPDATE AND COMMIT. + * FETCH UPDATED RECORDS. + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK)return 1; + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 INT);"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table T1 CREATED\n"); + // insert into statement + strcpy(statement,"INSERT INTO T1 VALUES(1,1);"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + rv = con->beginTrans(); + if(rv!=OK) { delete stmt; delete con; return 5; } + rv = stmt->execute(rows); if(rv!=OK) return 6; + stmt->free(); + printf("One record inserted\n"); + // update statement + printf("update T1 set F2=100\n"); + strcpy(statement,"UPDATE T1 SET F2=100;"); + rv = stmt->prepare(statement); + if(rv !=OK) { delete stmt; delete con; return 7; } + rv = stmt->execute(rows); + if(rv!=OK){ printf ("Hello\n"); return 8; } + rv = con->commit(); if(rv!=OK)return 9; + printf("One row updated\n"); + strcpy(statement,"SELECT F2 FROM T1 ;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 10; } + int id=10; + stmt->bindField(1,&id); + rv = con->beginTrans(); + if(rv!=OK)return 11; + stmt->execute(rows); + int count=0; + while(stmt->fetch()!=NULL) { + printf("F2= %d\n",id); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv!=OK)return 12; + printf("Total record fetched=%d\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 13; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 14; } + printf("TABLE T1 DROPPED SUCCESSFULLY\n"); + stmt->free(); delete stmt; delete con; + printf("Connection closed successfully\n"); + return 0; +} diff --git a/test/sqlapi/Connect/conntest11.c b/test/sqlapi/Connect/conntest11.c new file mode 100644 index 00000000..08fa36dc --- /dev/null +++ b/test/sqlapi/Connect/conntest11.c @@ -0,0 +1,72 @@ +/* create table T1 , insert and update + * then rollback, + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK)return 1; + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 INT);"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 2; } + stmt->free(); + printf("Table T1 CREATED\n"); + strcpy(statement,"INSERT INTO T1 VALUES(1,1);"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 3; } + rv = con->beginTrans(); + if(rv!=OK) { delete stmt; delete con; return 4; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 5; } + printf("1 Record inserted\n"); + stmt->free(); + strcpy(statement,"UPDATE T1 SET F2=100;"); + rv = stmt->prepare(statement); + if(rv !=OK) { delete stmt; delete con; return 6; } + rv = stmt->execute(rows); + if(rv!=OK && rows !=1)return 7; + printf("1 Record updated\n"); + // ROLLBACK + rv = con->rollback(); + if(rv!=OK)return 8; + stmt->free(); + strcpy(statement,"SELECT F2 FROM T1 ;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 9; } + int id=10; + stmt->bindField(1,&id); + rv = con->beginTrans(); + if(rv!=OK)return 1; + stmt->execute(rows); + int count=0; + while(stmt->fetch()!=NULL) { + printf("F2= %d\n",id); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv!=OK)return 10; + printf("Total record fetched =%d ,Because transaction rollbacked\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 11; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 12; } + printf("Table droped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Connect/conntest2.c b/test/sqlapi/Connect/conntest2.c new file mode 100644 index 00000000..00ee48c1 --- /dev/null +++ b/test/sqlapi/Connect/conntest2.c @@ -0,0 +1,28 @@ +/* close the connection and call commit, it should fail + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + printf("Connection opened\n"); + rv = con->beginTrans(); + if(rv!=OK)return 2; + rv = con->disconnect(); + if(rv !=OK)return 3;printf("Connection closed\n"); + rv = con->commit(); + if(rv==OK) { + printf("Test script failed\n"); + return 4; + } + printf("After closing the connection, commit failed\n"); + printf("Test script pased\n"); + delete con; + return 0; +} diff --git a/test/sqlapi/Connect/conntest3.c b/test/sqlapi/Connect/conntest3.c new file mode 100644 index 00000000..4765bce3 --- /dev/null +++ b/test/sqlapi/Connect/conntest3.c @@ -0,0 +1,32 @@ +/* close the connection and call prepare ,it should fail + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK)return 1; + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT);"); + int rows; + rv = con->disconnect(); + if(rv!=OK)return 2; + printf("Connection closed\n"); + rv = stmt->prepare(statement); + if(rv==OK) { + delete stmt; delete con; + printf("Test script failed\n"); + return 3; + } + printf("Test script passed\n"); + delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Connect/conntest4.c b/test/sqlapi/Connect/conntest4.c new file mode 100644 index 00000000..ff7e90e0 --- /dev/null +++ b/test/sqlapi/Connect/conntest4.c @@ -0,0 +1,34 @@ +// close the connection and call execute,it should fail. + +// Author : Jitendra Lenka + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK)return 1; + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 CHAR(20)); "); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + printf("prepared successfully\n"); + rv = con->disconnect(); + if(rv!=OK)return 3; + printf("Disconnect successfully\n"); + rv = stmt->execute(rows); + if(rv == OK) { + printf("Test script failed \n"); + delete stmt; return 4; + } + stmt->free(); + printf("Test script passed\n"); + delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Connect/conntest5.c b/test/sqlapi/Connect/conntest5.c new file mode 100644 index 00000000..3bddc030 --- /dev/null +++ b/test/sqlapi/Connect/conntest5.c @@ -0,0 +1,67 @@ +/* create table T1 ,Insert some records in it. + * Close the connection, Fetch should fail. + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK)return 1; + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 INT);"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table T1 CREATED\n"); + // insert into statement + strcpy(statement,"INSERT INTO T1 VALUES(1,1);"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + rv = con->beginTrans(); + if(rv!=OK) { delete stmt; delete con; return 5; } + rv = stmt->execute(rows); if(rv!=OK) return 6; + rv = con->commit(); + if(rv!=OK) return 7; + stmt->free(); + printf("One record inserted\n"); + strcpy(statement,"SELECT F2 FROM T1 ;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 10; } + int id=10; + stmt->bindField(1,&id); + rv = con->beginTrans(); + if(rv!=OK)return 11; + stmt->execute(rows); + int count=0; + stmt->close(); stmt->free(); + rv = con->disconnect(); //close the connection + void *rettype; + if(rv!=OK)return 8; + rettype = (char*)stmt->fetch(); + if(rettype==NULL && rv == OK) { + printf("After closing the connection,fetch failed\n"); + con->connect("root", "manager"); + stmt->setConnection(con); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); delete stmt; delete con; + printf("Test script passed\n"); + return 0; + } + printf("Test script Failed\n"); + delete stmt; delete con; + return 7; +} diff --git a/test/sqlapi/Connect/conntest6.c b/test/sqlapi/Connect/conntest6.c new file mode 100644 index 00000000..4b032cdf --- /dev/null +++ b/test/sqlapi/Connect/conntest6.c @@ -0,0 +1,24 @@ +/* connect twice without closing the connection, + * second conection should return "user already logged in". + + * Author : Jitendra lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK)return 1; + printf("Connection opened\n"); + rv = con->connect("root","manager"); + if(rv==OK) { + printf("testscript failed\n"); + return 1; + } + printf("Test script passed\n"); + delete con; + return 0; +} diff --git a/test/sqlapi/Connect/conntest7.c b/test/sqlapi/Connect/conntest7.c new file mode 100644 index 00000000..e5af0723 --- /dev/null +++ b/test/sqlapi/Connect/conntest7.c @@ -0,0 +1,20 @@ +// Pass correct user name and password ,it should pass. + +// Author : Jitendra Lenkla + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK) { + printf("Test script failed with error%d\n",rv); + return 1; + } + printf("Connection opened with correct user name and password\n"); + printf("Test script passed\n"); + delete con; + return 0; +} diff --git a/test/sqlapi/Connect/conntest8.c b/test/sqlapi/Connect/conntest8.c new file mode 100644 index 00000000..fe111c49 --- /dev/null +++ b/test/sqlapi/Connect/conntest8.c @@ -0,0 +1,20 @@ +// Pass incorrect user name and password ,it should fail. + +// Author : Jitendra Lenkla + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root123","manager123"); + if(rv==OK) { + printf("Test script failed with error%d\n",rv); + return 1; + } + printf("Connection failed dueto incorrect user anme and password\n"); + printf("Test script passed\n"); + delete con; + return 0; +} diff --git a/test/sqlapi/Connect/conntest9.c b/test/sqlapi/Connect/conntest9.c new file mode 100644 index 00000000..73e9545a --- /dev/null +++ b/test/sqlapi/Connect/conntest9.c @@ -0,0 +1,20 @@ +// Pass correct username and incorrect password ,it should fail. + +// Author : Jitendra Lenkla + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager123"); + if(rv==OK) { + printf("Test script failed with error%d\n",rv); + return 1; + } + printf("Connection is not opened dueto Incorrect password\n"); + printf("Test script passed\n"); + delete con; + return 0; +} diff --git a/test/sqlapi/Connect/exp.test010 b/test/sqlapi/Connect/exp.test010 new file mode 100644 index 00000000..abd54008 --- /dev/null +++ b/test/sqlapi/Connect/exp.test010 @@ -0,0 +1,9 @@ +Connection opened +Table T1 CREATED +One record inserted +update T1 set F2=100 +One row updated +F2= 100 +Total record fetched=1 +TABLE T1 DROPPED SUCCESSFULLY +Connection closed successfully diff --git a/test/sqlapi/Connect/exp.test010n b/test/sqlapi/Connect/exp.test010n new file mode 100644 index 00000000..abd54008 --- /dev/null +++ b/test/sqlapi/Connect/exp.test010n @@ -0,0 +1,9 @@ +Connection opened +Table T1 CREATED +One record inserted +update T1 set F2=100 +One row updated +F2= 100 +Total record fetched=1 +TABLE T1 DROPPED SUCCESSFULLY +Connection closed successfully diff --git a/test/sqlapi/Connect/exp.test011 b/test/sqlapi/Connect/exp.test011 new file mode 100644 index 00000000..eac77069 --- /dev/null +++ b/test/sqlapi/Connect/exp.test011 @@ -0,0 +1,6 @@ +Connection opened +Table T1 CREATED +1 Record inserted +1 Record updated +Total record fetched =0 ,Because transaction rollbacked +Table droped diff --git a/test/sqlapi/Connect/exp.test011n b/test/sqlapi/Connect/exp.test011n new file mode 100644 index 00000000..eac77069 --- /dev/null +++ b/test/sqlapi/Connect/exp.test011n @@ -0,0 +1,6 @@ +Connection opened +Table T1 CREATED +1 Record inserted +1 Record updated +Total record fetched =0 ,Because transaction rollbacked +Table droped diff --git a/test/sqlapi/Csql/Connect/Makefile b/test/sqlapi/Csql/Connect/Makefile new file mode 100644 index 00000000..8f296bf6 --- /dev/null +++ b/test/sqlapi/Csql/Connect/Makefile @@ -0,0 +1,86 @@ +OSNAME = $(shell uname -s) +PlatForm=notsupported +ifeq ($(OSNAME), SunOS) + CPlus = CC + CPlusFlags = -O2 -w $(COMPILER_FLAG) + SYSLIBS=-ldl -lnsl -lsocket -lposix4 + PlatForm=supported +endif +ifeq ($(OSNAME), Linux) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif +ifeq ($(OSNAME), FreeBSD) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif + + +INCL= -I$(CSQL_INSTALL_ROOT)/install/include -I../../../../include +ifeq ($(BUILDTYPE), MMDB) +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcsqlsqlnw -lcsqlsqlnw +else +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcacheload -lcsqlsqlnw -lcsqlgw -lcsqlsqlnw -lcsqlodbcadapter +endif + +TARGETS = \ + test001 test001n \ + test002 test002n \ + test003 test003n \ + test004 test004n \ + test005 test005n \ + test006 test006n \ + test007 test007n \ + test008 test008n \ + test009 test009n + + +ifeq ($(PlatForm), supported) +all: $(TARGETS) +else +all: + echo "CSQL is not supported on $(OSNAME) platform" +endif + +test001:conntest1.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test001n:conntest1.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002:userauthentication.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002n:userauthentication.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003:connecttwicewithoutclose.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003n:connecttwicewithoutclose.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004:closetwicewithoutconnect.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004n:closetwicewithoutconnect.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005:prepareafterclose.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005n:prepareafterclose.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006:executeafterclose.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006n:executeafterclose.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test007:fetchafterclose.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test007n:fetchafterclose.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test008:transactionafterclose.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test008n:transactionafterclose.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test009:connect5000times.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test009n:connect5000times.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +clean: + rm -f ${TARGETS} diff --git a/test/sqlapi/Csql/Connect/TODO b/test/sqlapi/Csql/Connect/TODO new file mode 100644 index 00000000..9970889f --- /dev/null +++ b/test/sqlapi/Csql/Connect/TODO @@ -0,0 +1,26 @@ +* 1. connect ,disconnect and again connect, it should pass. (conntest1.c) -> (conntest1.c) + +2. Pass correct username and incorrect password ,it should fail.(conntest9.c) + Pass incorrect user name and password ,it should fail.(conntest8.c) + Pass correct user name and password ,it should pass. (conntest7.c) -> (userauthentication.c) + +3. connect twice without closing the connection. + second conection should return "user already logged in". (conntest6.c) ->(connecttwicewithoutclose.c) + +4. closing the connection twice with single connect. + second close should return "User not logged in". (new case.) -> (closetwicewithoutconnect.c) + +5. close the connection and call prepare ,it should fail. (conntest3.c) -> (prepareafterclose.c) + +6. close the connection and call execute,it should fail. (conntest4.c) -> (executeafterclose.c) + +7. create table T1 ,Insert some records in it. + Close the connection Fetch should fail. (conntest5.c ) -> (fetchafterclose.c) + +8. close the connection and call commit, it should fail. (conntest2.c) + close the connection and call rollback, it should fail. (conntest2.c to be modified for rollback) + -> (transactionafterclose.c) + +9. Connect and dissconnect 5000 times. it should pass.(new case. follow jdbc/Con/ConnTest2.java) + -> (connect5000times.c) + diff --git a/test/sqlapi/Csql/Connect/closetwicewithoutconnect.c b/test/sqlapi/Csql/Connect/closetwicewithoutconnect.c new file mode 100644 index 00000000..b80ad648 --- /dev/null +++ b/test/sqlapi/Csql/Connect/closetwicewithoutconnect.c @@ -0,0 +1,36 @@ +/* + closing the connection twice with single connect. + second close should fail because of connection is already closed. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection Opened\n"); +//Closing Connection. + rv = con->disconnect(); + if(rv !=OK) { + delete con; + return 2; + } + printf("Connection Closed\n"); +//Closing Connection without connect. + rv = con->disconnect(); + if(rv ==OK) { + delete con; + printf("Test script Failed\n"); + return 3; + } + printf("Closing Connection without connect failed"); + delete con; + printf("Test Script Passed\n"); + return 0; +} diff --git a/test/sqlapi/Csql/Connect/common.h b/test/sqlapi/Csql/Connect/common.h new file mode 100644 index 00000000..f1ab199a --- /dev/null +++ b/test/sqlapi/Csql/Connect/common.h @@ -0,0 +1,37 @@ +#include +#include +#include + +AbsSqlConnection *createConnection() +{ +#ifdef NETWORK + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetwork); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKADAPTER + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkAdapter); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKGATEWAY + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkGateway); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#else + AbsSqlConnection *con = SqlFactory::createConnection(CSql); +#endif + return con; +} + +AbsSqlStatement *createStatement() +{ +#ifdef NETWORK + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetwork); +#elif defined NETWORKADAPTER + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkAdapter); +#elif defined NETWORKGATEWAY + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkGateway); +#else + AbsSqlStatement *stmt = SqlFactory::createStatement(CSql); +#endif + return stmt; +} diff --git a/test/sqlapi/Csql/Connect/connect5000times.c b/test/sqlapi/Csql/Connect/connect5000times.c new file mode 100644 index 00000000..be227581 --- /dev/null +++ b/test/sqlapi/Csql/Connect/connect5000times.c @@ -0,0 +1,23 @@ +/* + Connect and dissconnect 5000 times. it should pass. +*/ +#include "common.h" + +int main() +{ + DbRetVal rv =OK; + AbsSqlConnection *con = createConnection(); +// Connection 1st time + int i; + for(i=1; i<=5000; i++) + { + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + rv = con->disconnect(); + if(rv!=OK)return 2; + if(i%500==0)printf("Connected and Closed %d times\n",i); + } + printf("Test script passed\n"); + delete con; + return 0; +} diff --git a/test/sqlapi/Csql/Connect/connecttwicewithoutclose.c b/test/sqlapi/Csql/Connect/connecttwicewithoutclose.c new file mode 100644 index 00000000..109cc235 --- /dev/null +++ b/test/sqlapi/Csql/Connect/connecttwicewithoutclose.c @@ -0,0 +1,29 @@ +/* + connect twice without closing the connection, + second conection should return "user already logged in". +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + rv = con->connect("root","manager"); + if(rv==OK) { + printf("Testscript failed\n"); + con->disconnect(); + delete con; + return 2; + } + printf("Test script passed\n"); + con->disconnect(); + delete con; + return 0; +} diff --git a/test/sqlapi/Csql/Connect/conntest1.c b/test/sqlapi/Csql/Connect/conntest1.c new file mode 100644 index 00000000..c3145c9d --- /dev/null +++ b/test/sqlapi/Csql/Connect/conntest1.c @@ -0,0 +1,29 @@ +/* connect ,disconnect and again connect ,it should pass. +*/ +#include "common.h" + +int main() +{ + DbRetVal rv =OK; + AbsSqlConnection *con = createConnection(); +// Connection 1st time + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + printf("Connection Opened\n"); + rv = con->disconnect(); + if(rv!=OK)return 2; + printf("Connection Closed\n"); +// Connecting 2nd time + con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK) { + printf("Test script failed \n"); + return 3; + } + printf("Connection Opened\n"); + con->disconnect(); + printf("Connection closed\n"); + printf("Test script passed\n"); + delete con; + return 0; +} diff --git a/test/sqlapi/Csql/Connect/executeafterclose.c b/test/sqlapi/Csql/Connect/executeafterclose.c new file mode 100644 index 00000000..56320db1 --- /dev/null +++ b/test/sqlapi/Csql/Connect/executeafterclose.c @@ -0,0 +1,49 @@ +/* + close the connection and call execute,it should fail. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 CHAR(20)); "); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { + con->disconnect(); + delete stmt; + delete con; + return 2; + } + printf("prepared successfully\n"); + + rv = con->disconnect(); + if(rv!=OK) { + delete con; + return 3; + } + printf("Disconnect successfully\n"); + + rv = stmt->execute(rows); + if(rv == OK) { + printf("Test script failed \n"); + delete stmt; return 4; + } + printf("Execute failed after closing Connection\n"); + stmt->free(); + printf("Test script passed\n"); + delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Csql/Connect/exp.test001 b/test/sqlapi/Csql/Connect/exp.test001 new file mode 100644 index 00000000..3f00b6da --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test001 @@ -0,0 +1,5 @@ +Connection Opened +Connection Closed +Connection Opened +Connection closed +Test script passed diff --git a/test/sqlapi/Csql/Connect/exp.test001n b/test/sqlapi/Csql/Connect/exp.test001n new file mode 100644 index 00000000..3f00b6da --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test001n @@ -0,0 +1,5 @@ +Connection Opened +Connection Closed +Connection Opened +Connection closed +Test script passed diff --git a/test/sqlapi/Csql/Connect/exp.test002 b/test/sqlapi/Csql/Connect/exp.test002 new file mode 100644 index 00000000..12a347c3 --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test002 @@ -0,0 +1,3 @@ +Connection is not opened due to Incorrect password +Connection is not opened due to Incorrect Username +Connection is opened with correct Username and password diff --git a/test/sqlapi/Csql/Connect/exp.test002n b/test/sqlapi/Csql/Connect/exp.test002n new file mode 100644 index 00000000..12a347c3 --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test002n @@ -0,0 +1,3 @@ +Connection is not opened due to Incorrect password +Connection is not opened due to Incorrect Username +Connection is opened with correct Username and password diff --git a/test/sqlapi/Csql/Connect/exp.test003 b/test/sqlapi/Csql/Connect/exp.test003 new file mode 100644 index 00000000..3232afef --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test003 @@ -0,0 +1,2 @@ +Connection opened +Test script passed diff --git a/test/sqlapi/Csql/Connect/exp.test003n b/test/sqlapi/Csql/Connect/exp.test003n new file mode 100644 index 00000000..3232afef --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test003n @@ -0,0 +1,2 @@ +Connection opened +Test script passed diff --git a/test/sqlapi/Csql/Connect/exp.test004 b/test/sqlapi/Csql/Connect/exp.test004 new file mode 100644 index 00000000..5387480d --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test004 @@ -0,0 +1,3 @@ +Connection Opened +Connection Closed +Closing Connection without connect failedTest Script Passed diff --git a/test/sqlapi/Csql/Connect/exp.test004n b/test/sqlapi/Csql/Connect/exp.test004n new file mode 100644 index 00000000..5387480d --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test004n @@ -0,0 +1,3 @@ +Connection Opened +Connection Closed +Closing Connection without connect failedTest Script Passed diff --git a/test/sqlapi/Csql/Connect/exp.test005 b/test/sqlapi/Csql/Connect/exp.test005 new file mode 100644 index 00000000..a3a6d8ed --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test005 @@ -0,0 +1,4 @@ +Connection opened +Connection closed +Prepare failed after closing connection +Test script passed diff --git a/test/sqlapi/Csql/Connect/exp.test005n b/test/sqlapi/Csql/Connect/exp.test005n new file mode 100644 index 00000000..a3a6d8ed --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test005n @@ -0,0 +1,4 @@ +Connection opened +Connection closed +Prepare failed after closing connection +Test script passed diff --git a/test/sqlapi/Csql/Connect/exp.test006 b/test/sqlapi/Csql/Connect/exp.test006 new file mode 100644 index 00000000..254cb12f --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test006 @@ -0,0 +1,5 @@ +Connection opened +prepared successfully +Disconnect successfully +Execute failed after closing Connection +Test script passed diff --git a/test/sqlapi/Csql/Connect/exp.test006n b/test/sqlapi/Csql/Connect/exp.test006n new file mode 100644 index 00000000..254cb12f --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test006n @@ -0,0 +1,5 @@ +Connection opened +prepared successfully +Disconnect successfully +Execute failed after closing Connection +Test script passed diff --git a/test/sqlapi/Csql/Connect/exp.test007 b/test/sqlapi/Csql/Connect/exp.test007 new file mode 100644 index 00000000..537d1bfd --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test007 @@ -0,0 +1,7 @@ +Connection opened +Statement Prepared +Table T1 CREATED +One record inserted +Fetch Failed After closing Connection, +Table Dropped successfully +Test script passed diff --git a/test/sqlapi/Csql/Connect/exp.test007n b/test/sqlapi/Csql/Connect/exp.test007n new file mode 100644 index 00000000..537d1bfd --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test007n @@ -0,0 +1,7 @@ +Connection opened +Statement Prepared +Table T1 CREATED +One record inserted +Fetch Failed After closing Connection, +Table Dropped successfully +Test script passed diff --git a/test/sqlapi/Csql/Connect/exp.test008 b/test/sqlapi/Csql/Connect/exp.test008 new file mode 100644 index 00000000..9f73a4e0 --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test008 @@ -0,0 +1,5 @@ +Connection opened +Connection closed +Commit Failed After closing connection, +Rollback Failed After closing connection, +Test script pased diff --git a/test/sqlapi/Csql/Connect/exp.test008n b/test/sqlapi/Csql/Connect/exp.test008n new file mode 100644 index 00000000..9f73a4e0 --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test008n @@ -0,0 +1,5 @@ +Connection opened +Connection closed +Commit Failed After closing connection, +Rollback Failed After closing connection, +Test script pased diff --git a/test/sqlapi/Csql/Connect/exp.test009 b/test/sqlapi/Csql/Connect/exp.test009 new file mode 100644 index 00000000..696fbf67 --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test009 @@ -0,0 +1,11 @@ +Connected and Closed 500 times +Connected and Closed 1000 times +Connected and Closed 1500 times +Connected and Closed 2000 times +Connected and Closed 2500 times +Connected and Closed 3000 times +Connected and Closed 3500 times +Connected and Closed 4000 times +Connected and Closed 4500 times +Connected and Closed 5000 times +Test script passed diff --git a/test/sqlapi/Csql/Connect/exp.test009n b/test/sqlapi/Csql/Connect/exp.test009n new file mode 100644 index 00000000..696fbf67 --- /dev/null +++ b/test/sqlapi/Csql/Connect/exp.test009n @@ -0,0 +1,11 @@ +Connected and Closed 500 times +Connected and Closed 1000 times +Connected and Closed 1500 times +Connected and Closed 2000 times +Connected and Closed 2500 times +Connected and Closed 3000 times +Connected and Closed 3500 times +Connected and Closed 4000 times +Connected and Closed 4500 times +Connected and Closed 5000 times +Test script passed diff --git a/test/sqlapi/Csql/Connect/fetchafterclose.c b/test/sqlapi/Csql/Connect/fetchafterclose.c new file mode 100644 index 00000000..5dafb7e9 --- /dev/null +++ b/test/sqlapi/Csql/Connect/fetchafterclose.c @@ -0,0 +1,87 @@ +/* + create table T1 ,Insert some records in it. + Close the connection, Fetch should fail. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 INT);"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { + con->disconnect(); + delete stmt; + delete con; + return 2; + } + printf("Statement Prepared\n"); + + rv = stmt->execute(rows); + if(rv!=OK) { + con->disconnect(); + delete stmt; + delete con; + return 3; + } + stmt->free(); + printf("Table T1 CREATED\n"); + +// insert into statement + strcpy(statement,"INSERT INTO T1 VALUES(1,1);"); + rv = stmt->prepare(statement); + if(rv!=OK) { con->disconnect(); delete stmt; delete con; return 4; } + rv = con->beginTrans(); + if(rv!=OK) { con->disconnect(); delete stmt; delete con; return 5; } + rv = stmt->execute(rows); if(rv!=OK) return 6; + rv = con->commit(); + if(rv!=OK) { + return 7; + } + stmt->free(); + printf("One record inserted\n"); + + strcpy(statement,"SELECT F2 FROM T1 ;"); + rv = stmt->prepare(statement); + if(rv!=OK) { con->disconnect(); delete stmt; delete con; return 10; } + int id=10; + stmt->bindField(1,&id); + rv = con->beginTrans(); + if(rv!=OK)return 11; + stmt->execute(rows); + int count=0; + stmt->close(); stmt->free(); + rv = con->disconnect(); //close the connection + void *rettype; + if(rv!=OK)return 8; + rettype = (char*)stmt->fetch(); + if(rettype==NULL && rv == OK) { + printf("Fetch Failed After closing Connection,\n"); + con->connect("root", "manager"); + stmt->setConnection(con); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); delete stmt; delete con; + printf("Test script passed\n"); + return 0; + } + printf("Test script Failed\n"); + + delete stmt; delete con; + return 7; +} diff --git a/test/sqlapi/Csql/Connect/prepareafterclose.c b/test/sqlapi/Csql/Connect/prepareafterclose.c new file mode 100644 index 00000000..9eb6ca4f --- /dev/null +++ b/test/sqlapi/Csql/Connect/prepareafterclose.c @@ -0,0 +1,41 @@ +/* + Close the connection and call prepare ,it should fail +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT);"); + int rows; + + rv = con->disconnect(); + if(rv!=OK) { + delete con; + return 2; + } + printf("Connection closed\n"); + + rv = stmt->prepare(statement); + if(rv==OK) { + delete stmt; delete con; + printf("Test script failed\n"); + return 3; + } + printf("Prepare failed after closing connection\n"); + printf("Test script passed\n"); + + delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Csql/Connect/transactionafterclose.c b/test/sqlapi/Csql/Connect/transactionafterclose.c new file mode 100644 index 00000000..726d0fac --- /dev/null +++ b/test/sqlapi/Csql/Connect/transactionafterclose.c @@ -0,0 +1,52 @@ +/* + close the connection and call commit, it should fail + close the connection and call rollback, it should fail. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + + rv = con->beginTrans(); + if(rv!=OK) { + con->disconnect(); + delete con; + return 2; + } + + rv = con->disconnect(); + if(rv !=OK) { + delete con; + return 3; + } + printf("Connection closed\n"); + + rv = con->commit(); + if(rv==OK) { + printf("Test script failed\n"); + delete con; + return 4; + } + printf("Commit Failed After closing connection,\n"); + + rv = con->rollback(); + if(rv==OK) { + printf("Test script failed\n"); + delete con; + return 4; + } + printf("Rollback Failed After closing connection,\n"); + + printf("Test script pased\n"); + delete con; + return 0; +} diff --git a/test/sqlapi/Csql/Connect/userauthentication.c b/test/sqlapi/Csql/Connect/userauthentication.c new file mode 100644 index 00000000..d9e0101c --- /dev/null +++ b/test/sqlapi/Csql/Connect/userauthentication.c @@ -0,0 +1,43 @@ +/* + Pass correct username and incorrect password, it should fail. + Pass incorrect user name, it should fail. + Pass correct username and correct password, Connection should be established. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); +//Incorrect Password + rv = con->connect("root","manager123"); + if(rv==OK) { + printf("Test script failed with error%d\n",rv); + con->disconnect(); + delete con; + return 1; + } + printf("Connection is not opened due to Incorrect password\n"); +//Incorrect user name + rv = con->connect("root123","manager"); + if(rv==OK) { + printf("Test script failed with error%d\n",rv); + con->disconnect(); + delete con; + return 2; + } + printf("Connection is not opened due to Incorrect Username\n"); +//Correct user name and correct password + rv = con->connect("root","manager"); + if(rv!=OK) { + printf("Test script failed with error%d\n",rv); + delete con; + return 3; + } + printf("Connection is opened with correct Username and password\n"); + + con->disconnect(); + delete con; + return 0; +} diff --git a/test/sqlapi/Csql/DDLStmt/Makefile b/test/sqlapi/Csql/DDLStmt/Makefile new file mode 100644 index 00000000..fb9542b5 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/Makefile @@ -0,0 +1,91 @@ +OSNAME = $(shell uname -s) +PlatForm=notsupported +ifeq ($(OSNAME), SunOS) + CPlus = CC + CPlusFlags = -O2 -w $(COMPILER_FLAG) + SYSLIBS=-ldl -lnsl -lsocket -lposix4 + PlatForm=supported +endif +ifeq ($(OSNAME), Linux) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif +ifeq ($(OSNAME), FreeBSD) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif + + +INCL= -I$(CSQL_INSTALL_ROOT)/install/include -I../../../../include +ifeq ($(BUILDTYPE), MMDB) +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcsqlsqlnw +else +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcacheload -lcsqlsqlnw -lcsqlgw -lcsqlodbcadapter +endif + +TARGETS = \ + test001 test001n \ + test002 test002n \ + test003 test003n \ + test004 test004n \ + test005 test005n \ + test006 test006n \ + hashindexonalldatatype hashindexonalldatatypen \ + treeindexonalldatatype treeindexonalldatatypen \ + compositehashonalldatatype compositehashonalldatatypen \ + test010 test010n + +ifeq ($(PlatForm), supported) +all: $(TARGETS) +else +all: + echo "CSQL is not supported on $(OSNAME) platform" +endif + +test001: createtablewithalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test001n: createtablewithalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002: defaultwithalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002n: defaultwithalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003: notnullonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003n: notnullonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004: pkeyfkeyonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004n: pkeyfkeyonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005: autoincreonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005n: autoincreonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006: copystatement.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006n: copystatement.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +hashindexonalldatatype: hashindexonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +hashindexonalldatatypen: hashindexonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +treeindexonalldatatype: treeindexonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +treeindexonalldatatypen: treeindexonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +compositehashonalldatatype: compositehashonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +compositehashonalldatatypen: compositehashonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test010: charvarcharrange.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test010n: charvarcharrange.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) + +clean: + rm -f *.o ${TARGETS} diff --git a/test/sqlapi/Csql/DDLStmt/TODO b/test/sqlapi/Csql/DDLStmt/TODO new file mode 100644 index 00000000..31790042 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/TODO @@ -0,0 +1,26 @@ +* 1.Creating table using all Datatypes. + Create table t1 with all datatypes(TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,FLOAT,DOUBLE,DATE,TIME,TIMESTAMP). + It should pass. (createtablewithalldatatype.c) + +* 2. Default value testing with all datatypes.(TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,FLOAT,DOUBLE,DATE,TIME,TIMESTAMP)) + Insert a record say (insert into t1 (f1) values(1); It should insert default values in all other fields. + Insert null values in all the fields , it should accept null values. + Update all the inserted default field values to null. it should update. (defaultwithalldatatype.c) + +* 3. NOT NULL Constraint Testing with all datatypes. Try to put null values in Not Null fields,it should not be allowed. (notnullonalldatatype.c) + +* 4. Primary key(t1) and foreign key(t2) testing. + try to drop t1 . it should fail. + +* 5. Autoincrement key should not be allowed for the datatypes other than all int types. + +* 6. CopyStatement Testing.(field level and table level). + +* 7. Create Hash indexes on the fields which are (TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,DATE,TIME). + +* 8. Create Tree indexes on all datatypes(TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,FLOAT,DOUBLE,DATE,TIME,TIMESTAMP). + +* 9. Create composite hash indexes in different combinations taking datatypes like (TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,DATE,TIME). + +* 10.Char and varchar field length should not be more than 8000 bytes. +exp file needs to be created diff --git a/test/sqlapi/Csql/DDLStmt/autoincreonalldatatype.c b/test/sqlapi/Csql/DDLStmt/autoincreonalldatatype.c new file mode 100644 index 00000000..5b6aff07 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/autoincreonalldatatype.c @@ -0,0 +1,176 @@ +/* + Autoincrement key should not be allowed for the datatypes other than all int types. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + strcpy(statement,"CREATE TABLE AUTOINCTINY(f1 TINYINT AUTO_INCREMENT,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); + + strcpy(statement,"CREATE TABLE AUTOINCSMALL(f1 TINYINT ,f2 SMALLINT AUTO_INCREMENT,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->free(); + + strcpy(statement,"CREATE TABLE AUTOINCINT(f1 TINYINT ,f2 SMALLINT ,f3 INT AUTO_INCREMENT,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + stmt->free(); + + strcpy(statement,"CREATE TABLE AUTOINCBIG(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT AUTO_INCREMENT,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + stmt->free(); + + strcpy(statement,"CREATE TABLE AUTOINCCHAR(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) AUTO_INCREMENT,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + rows=0; + rv = stmt->prepare(statement); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 9; } + printf("Auto_increment can not be applied on char datatype\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE AUTOINCVARCHAR(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) AUTO_INCREMENT,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + rows=0; + rv = stmt->prepare(statement); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("Auto_increment can not be applied on varchar datatype\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE AUTOINCFLOAT(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT AUTO_INCREMENT,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + rows=0; + rv = stmt->prepare(statement); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("Auto_increment can not be applied on float datatype\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE AUTOINCDOUBLE(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE AUTO_INCREMENT,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + rows=0; + rv = stmt->prepare(statement); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 15; } + printf("Auto_increment can not be applied on double datatype\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE AUTOINCDATE(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE AUTO_INCREMENT,f10 TIME ,f11 TIMESTAMP);"); + rows=0; + rv = stmt->prepare(statement); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 17; } + printf("Auto_increment can not be applied on date datatype\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE AUTOINCTIME(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME AUTO_INCREMENT,f11 TIMESTAMP);"); + rows=0; + rv = stmt->prepare(statement); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 19; } + printf("Auto_increment can not be applied on time datatype\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE AUTOINCTIMESTAMP(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP AUTO_INCREMENT);"); + rows=0; + rv = stmt->prepare(statement); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 21; } + printf("Auto_increment can not be applied on timestamp datatype\n"); + stmt->free(); + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 23; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 24; } + printf("\t TABLES\n"); + printf("\t--------\n"); + while(stmt->next() !=NULL) { + printf("\t%s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Droping tables + rv = stmt->prepare("DROP TABLE AUTOINCTINY;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 25; } + printf("AUTOINCTINY Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE AUTOINCSMALL;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 26; } + printf("AUTOINCSMALL Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE AUTOINCINT;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 27; } + printf("AUTOINCINT Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE AUTOINCBIG;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 28; } + printf("AUTOINCBIG Table Dropped\n"); + stmt->free(); +/* rv = stmt->prepare("DROP TABLE AUTOINCCHAR;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 53; } + printf("AUTOINCCHAR Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE AUTOINCVARCHAR;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 55; } + printf("AUTOINCVARCHAR Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE AUTOINCDATE;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 57; } + printf("AUTOINCDATE Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE AUTOINCTIME;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 59; } + printf("AUTOINCTIME Table Dropped\n"); + stmt->free();*/ + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 29; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 30; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DDLStmt/charvarcharrange.c b/test/sqlapi/Csql/DDLStmt/charvarcharrange.c new file mode 100644 index 00000000..0bbae2b5 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/charvarcharrange.c @@ -0,0 +1,85 @@ +/* + Char and varchar field length should not be more than 8000 bytes. + CREATE TABLE t1(f1 INT,f2 CHAR(8002)); It should be failed because size should not greater than 8000 + CREATE TABLE t1(f1 INT,f2 VARCHAR(8002)); It should be failed because size should not greater than 8000 +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + strcpy(statement,"CREATE TABLE t1(f1 INT,f2 CHAR(8002));"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv==OK) { + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + printf("Table dropped\n"); + stmt->free(); + delete stmt; + con->disconnect(); + delete con; + return 5; + } + printf("Table Creation Failed\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE t1(f1 INT,f2 VARCHAR(8002));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + rv = stmt->execute(rows); + if(rv==OK) { + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + printf("Table dropped\n"); + stmt->free(); + delete stmt; + con->disconnect(); + delete con; + return 9; + } + printf("Table Creation Failed\n"); + stmt->free(); + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("\t TABLES\n"); + printf("\t--------\n"); + while(stmt->next() !=NULL) { + printf("\t%s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DDLStmt/common.h b/test/sqlapi/Csql/DDLStmt/common.h new file mode 100644 index 00000000..f1ab199a --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/common.h @@ -0,0 +1,37 @@ +#include +#include +#include + +AbsSqlConnection *createConnection() +{ +#ifdef NETWORK + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetwork); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKADAPTER + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkAdapter); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKGATEWAY + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkGateway); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#else + AbsSqlConnection *con = SqlFactory::createConnection(CSql); +#endif + return con; +} + +AbsSqlStatement *createStatement() +{ +#ifdef NETWORK + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetwork); +#elif defined NETWORKADAPTER + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkAdapter); +#elif defined NETWORKGATEWAY + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkGateway); +#else + AbsSqlStatement *stmt = SqlFactory::createStatement(CSql); +#endif + return stmt; +} diff --git a/test/sqlapi/Csql/DDLStmt/compositehashonalldatatype.c b/test/sqlapi/Csql/DDLStmt/compositehashonalldatatype.c new file mode 100644 index 00000000..cd9db65d --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/compositehashonalldatatype.c @@ -0,0 +1,556 @@ +/* + CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP); + + CREATE INDEX idxtinyint_smallint ON t1(f1,f2) HASH; + CREATE INDEX idxtinyint_int ON t1(f1,f3) HASH; + CREATE INDEX idxtinyint_bigint ON t1(f1,f4) HASH; + CREATE INDEX idxtinyint_char ON t1(f1,f5) HASH; + CREATE INDEX idxtinyint_varchar ON t1(f1,f6) HASH; + CREATE INDEX idxtinyint_date ON t1(f1,f9) HASH; + CREATE INDEX idxtinyint_time ON t1(f1,f10) HASH; + + CREATE INDEX idxsmallint_tinyint ON t1(f2,f1) HASH; should fail + CREATE INDEX idxsmallint_int ON t1(f2,f3) HASH; + CREATE INDEX idxsmallint_bigint ON t1(f2,f4) HASH; + CREATE INDEX idxsmallint_char ON t1(f2,f5) HASH; + CREATE INDEX idxsmallint_varchar ON t1(f2,f6) HASH; + CREATE INDEX idxsmallint_date ON t1(f2,f9) HASH; + CREATE INDEX idxsmallint_time ON t1(f2,f10) HASH; + + CREATE INDEX idxint_tinyint ON t1(f3,f1) HASH; should fail + CREATE INDEX idxint_smallint ON t1(f3,f2) HASH; should fail + CREATE INDEX idxint_bigint ON t1(f3,f4) HASH; + CREATE INDEX idxint_char ON t1(f3,f5) HASH; + CREATE INDEX idxint_varchar ON t1(f3,f6) HASH; + CREATE INDEX idxint_date ON t1(f3,f9) HASH; + CREATE INDEX idxint_time ON t1(f3,f10) HASH; + + CREATE INDEX idxbigint_tinyint ON t1(f4,f1) HASH; should fail + CREATE INDEX idxbigint_smallint ON t1(f4,f2) HASH; should fail + CREATE INDEX idxbigint_int ON t1(f4,f3) HASH; should fail + CREATE INDEX idxbigint_char ON t1(f4,f5) HASH; + CREATE INDEX idxbigint_varchar ON t1(f4,f6) HASH; + CREATE INDEX idxbigint_date ON t1(f4,f9) HASH; + CREATE INDEX idxbigint_time ON t1(f4,f10) HASH; + + CREATE INDEX idxchar_tinyint ON t1(f5,f1) HASH; should fail + CREATE INDEX idxchar_smallint ON t1(f5,f2) HASH; should fail + CREATE INDEX idxchar_int ON t1(f5,f3) HASH; should fail + CREATE INDEX idxchar_bigint ON t1(f5,f4) HASH; should fail + CREATE INDEX idxchar_varchar ON t1(f5,f6) HASH; + CREATE INDEX idxchar_date ON t1(f5,f9) HASH; + CREATE INDEX idxchar_time ON t1(f5,f10) HASH; + + CREATE INDEX idxvarchar_tinyint ON t1(f6,f1) HASH; should fail + CREATE INDEX idxvarchar_smallint ON t1(f6,f2) HASH; should fail + CREATE INDEX idxvarchar_int ON t1(f6,f3) HASH; should fail + CREATE INDEX idxvarchar_bigint ON t1(f6,f4) HASH; should fail + CREATE INDEX idxvarchar_char ON t1(f6,f5) HASH; should fail + CREATE INDEX idxvarchar_date ON t1(f6,f9) HASH; + CREATE INDEX idxvarchar_time ON t1(f6,f10) HASH; + + CREATE INDEX idxdate_tinyint ON t1(f9,f1) HASH; should fail + CREATE INDEX idxdate_smallint ON t1(f9,f2) HASH; should fail + CREATE INDEX idxdate_int ON t1(f9,f3) HASH; should fail + CREATE INDEX idxdate_bigint ON t1(f9,f4) HASH; should fail + CREATE INDEX idxdate_char ON t1(f9,f5) HASH; should fail + CREATE INDEX idxdate_date ON t1(f9,f6) HASH; should fail + CREATE INDEX idxdate_time ON t1(f9,f10) HASH; + + CREATE INDEX idxtime_tinyint ON t1(f10,f1) HASH; should fail + CREATE INDEX idxtime_smallint ON t1(f10,f2) HASH; should fail + CREATE INDEX idxtime_int ON t1(f10,f3) HASH; should fail + CREATE INDEX idxtime_bigint ON t1(f10,f4) HASH; should fail + CREATE INDEX idxtime_char ON t1(f10,f5) HASH; should fail + CREATE INDEX idxtime_date ON t1(f10,f6) HASH; should fail + CREATE INDEX idxtime_time ON t1(f10,f9) HASH; should fail + + CREATE INDEX idxtinyint_smallint_int ON t1(f1,f2,f3) HASH; + CREATE INDEX idxtinyint_smallint_int_bigint ON t1(f1,f2,f3,f4) HASH; + CREATE INDEX idxtinyint_smallint_int_bigint_char ON t1(f1,f2,f3,f4,f5) HASH; + CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar ON t1(f1,f2,f3,f4,f5,f6) HASH; + CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar_date ON t1(f1,f2,f3,f4,f5,f6,f9) HASH; + CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar_date_time ON t1(f1,f2,f3,f4,f5,f6,f9,f10) HASH; + +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + strcpy(statement,"CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + printf("Table t1 Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_smallint ON t1(f1,f2) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_int ON t1(f1,f3) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_bigint ON t1(f1,f4) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_char ON t1(f1,f5) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_varchar ON t1(f1,f6) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_date ON t1(f1,f9) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 14; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 15; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_time ON t1(f1,f10) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 16; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 17; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxsmallint_tinyint ON t1(f2,f1) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 18; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 19; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxsmallint_int ON t1(f2,f3) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 20; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 21; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxsmallint_bigint ON t1(f2,f4) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 22; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 23; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxsmallint_char ON t1(f2,f5) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 24; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 25; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxsmallint_varchar ON t1(f2,f6) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 26; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 27; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxsmallint_date ON t1(f2,f9) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 28; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 29; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxsmallint_time ON t1(f2,f10) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 30; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 31; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxint_tinyint ON t1(f3,f1) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 32; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 33; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxint_smallint ON t1(f3,f2) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 34; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 35; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxint_bigint ON t1(f3,f4) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 36; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 37; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxint_char ON t1(f3,f5) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 38; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 39; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxint_varchar ON t1(f3,f6) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 40; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 41; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxint_date ON t1(f3,f9) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 42; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 43; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxint_time ON t1(f3,f10) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 44; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 45; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxbigint_tinyint ON t1(f4,f1) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 46; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 47; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxbigint_smallint ON t1(f4,f2) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 48; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 49; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxbigint_int ON t1(f4,f3) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 50; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 51; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxbigint_char ON t1(f4,f5) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 52; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 53; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxbigint_varchar ON t1(f4,f6) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 54; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 55; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxbigint_date ON t1(f4,f9) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 55; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 56; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxbigint_time ON t1(f4,f10) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 57; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 58; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxchar_tinyint ON t1(f5,f1) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 59; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 60; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxchar_smallint ON t1(f5,f2) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 61; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 62; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxchar_int ON t1(f5,f3) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 63; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 64; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxchar_bigint ON t1(f5,f4) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 65; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 66; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxchar_varchar ON t1(f5,f6) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 67; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 68; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxchar_date ON t1(f5,f9) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 69; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 70; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxchar_time ON t1(f5,f10) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 71; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 72; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxvarchar_tinyint ON t1(f6,f1) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 73; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 74; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxvarchar_smallint ON t1(f6,f2) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 75; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 76; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxvarchar_int ON t1(f6,f3) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 77; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 78; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxvarchar_bigint ON t1(f6,f4) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 79; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 80; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxvarchar_char ON t1(f6,f5) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 81; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 82; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxvarchar_date ON t1(f6,f9) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 83; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 84; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxvarchar_time ON t1(f6,f10) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 85; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 86; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxdate_tinyint ON t1(f9,f1) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 87; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 88; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxdate_smallint ON t1(f9,f2) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 89; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 90; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxdate_int ON t1(f9,f3) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 91; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 92; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxdate_bigint ON t1(f9,f4) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 93; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 94; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxdate_char ON t1(f9,f5) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 95; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 96; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxdate_date ON t1(f9,f6) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 97; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 98; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxdate_time ON t1(f9,f10) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 99; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 100; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtime_tinyint ON t1(f10,f1) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 101; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 102; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtime_smallint ON t1(f10,f2) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 103; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 104; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtime_int ON t1(f10,f3) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 105; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 106; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtime_bigint ON t1(f10,f4) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 107; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 108; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtime_char ON t1(f10,f5) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 109; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 110; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtime_date ON t1(f10,f6) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 111; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 112; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtime_time ON t1(f10,f9) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 113; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 114; } + printf("Index Already Exist\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_smallint_int ON t1(f1,f2,f3) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 115; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 116; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_smallint_int_bigint ON t1(f1,f2,f3,f4) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 117; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 118; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_smallint_int_bigint_char ON t1(f1,f2,f3,f4,f5) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 119; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 120; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar ON t1(f1,f2,f3,f4,f5,f6) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 121; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 122; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar_date ON t1(f1,f2,f3,f4,f5,f6,f9) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 123; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 124; } + printf("Index Created\n"); + stmt->free(); + + rv = stmt->prepare("CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar_date_time ON t1(f1,f2,f3,f4,f5,f6,f9,f10) HASH;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 125; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 126; } + printf("Index Created\n"); + stmt->free(); + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 127; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 128; } + printf("\t TABLES\n"); + printf("\t--------\n"); + while(stmt->next() !=NULL) { + printf("\t%s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DDLStmt/copystatement.c b/test/sqlapi/Csql/DDLStmt/copystatement.c new file mode 100644 index 00000000..7a1ec6b9 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/copystatement.c @@ -0,0 +1,107 @@ +/* + CopyStatement Testing.(field level and table level). + CREATE TABLE MASTER(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP); + CREATE TABLE COPYMASTER AS SELECT * FROM MASTER; + CREATE TABLE COPYMASTER_FIELDLEVEL AS SELECT f2,f5,f1,f9,f11,f10,f6,f4,f7,f3 FROM MASTER; + CREATE TABLE COPYMASTER_DUPLICATEFIELD AS SELECT f2,f5,f2 FROM MASTER; This should be failed +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + strcpy(statement,"CREATE TABLE MASTER(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + printf("Table MASTER Created\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE COPYMASTER AS SELECT * FROM MASTER;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + printf("Table COPYMASTER Created\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE COPYMASTER_FIELDLEVEL AS SELECT f2,f5,f1,f9,f11,f10,f6,f4,f7,f3 FROM MASTER;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + printf("Table COPYMASTER_FIELDLEVEL Created\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE COPYMASTER_DUPLICATEFIELD AS SELECT f2,f5,f2 FROM MASTER;"); + rows=0; + rv = stmt->prepare(statement); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 8; } + printf("Table COPYMASTER_DUPLICATEFIELD can not be Created because of duplicate fields\n"); + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + printf("\t TABLES\n"); + printf("\t--------\n"); + while(stmt->next() !=NULL) { + printf("\t%s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Droping tables + rv = stmt->prepare("DROP TABLE MASTER;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("MASTER Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE COPYMASTER;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + printf("COPYMASTER Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE COPYMASTER_FIELDLEVEL;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("COPYMASTER_FIELDLEVEL Table Dropped\n"); + stmt->free(); + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 14; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 15; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DDLStmt/createtablewithalldatatype.c b/test/sqlapi/Csql/DDLStmt/createtablewithalldatatype.c new file mode 100644 index 00000000..2ec8b852 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/createtablewithalldatatype.c @@ -0,0 +1,54 @@ +/* + Creating table using all Datatypes. + Create table t1 with all datatypes(TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,FLOAT,DOUBLE,DATE,TIME,TIMESTAMP). + It should pass. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); +//Dropping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DDLStmt/defaultwithalldatatype.c b/test/sqlapi/Csql/DDLStmt/defaultwithalldatatype.c new file mode 100644 index 00000000..a4c0f5cc --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/defaultwithalldatatype.c @@ -0,0 +1,194 @@ +/* + Default value testing with all datatypes.(TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,FLOAT,DOUBLE,DATE,TIME,TIMESTAMP)) + CREATE TABLE t1(f1 TINYINT DEFAULT 1,f2 SMALLINT DEFAULT 11,f3 INT DEFAULT 111,f4 BIGINT DEFAULT 1111,f5 CHAR(20) DEFAULT 'CSQL1',f6 VARCHAR(30) DEFAULT 'Lakshya1',f7 FLOAT DEFAULT 11.11,f8 DOUBLE DEFAULT 1111.11,f9 DATE DEFAULT '2001/01/01',f10 TIME DEFAULT '01:01:01',f11 TIMESTAMP DEFAULT '2001/01/01 01:01:01'); + Insert a record say (insert into t1 (f1) values(1); It should insert default values in all other fields. + Update all the inserted default field values to null. it should update. + Insert null values in all the fields , it should accept null values. + It should pass. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT DEFAULT 1,f2 SMALLINT DEFAULT 11,f3 INT DEFAULT 111,f4 BIGINT DEFAULT 1111,f5 CHAR(20) DEFAULT 'CSQL1',f6 VARCHAR(30) DEFAULT 'Lakshya1',f7 FLOAT DEFAULT 11.11,f8 DOUBLE DEFAULT 1111.11,f9 DATE DEFAULT '2001-01-01',f10 TIME DEFAULT '01:01:01',f11 TIMESTAMP DEFAULT '2001-01-01 01:01:01');\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT DEFAULT 1,f2 SMALLINT DEFAULT 11,f3 INT DEFAULT 111,f4 BIGINT DEFAULT 1111,f5 CHAR(20) DEFAULT 'CSQL1',f6 VARCHAR(30) DEFAULT 'Lakshya1',f7 FLOAT DEFAULT 11.11,f8 DOUBLE DEFAULT 1111.11,f9 DATE DEFAULT '2001-01-01',f10 TIME DEFAULT '01:01:01',f11 TIMESTAMP DEFAULT '2001-01-01 01:01:01');"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1(f1) VALUES(1);\n"); + stmt->prepare("INSERT INTO t1(f1) VALUES(1);"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n"); + stmt->prepare("INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n"); + stmt->prepare("INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);"); + stmt->execute(rows); + con->commit(); + stmt->free(); + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[30]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); +//Updating Default fields to NULL + con->beginTrans(); + strcpy(statement,"UPDATE t1 SET f1=NULL,f2=NULL,f3=NULL,f4=NULL,f5=NULL,f6=NULL,f7=NULL,f8=NULL,f9=NULL,f10=NULL,f11=NULL where f1=1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + printf("Prepared\n"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + printf("Executed\n"); + con->commit(); + stmt->free(); + +//Fetching records after Update + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 10; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 11; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DDLStmt/exp.test001 b/test/sqlapi/Csql/DDLStmt/exp.test001 new file mode 100644 index 00000000..791edade --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test001 @@ -0,0 +1,4 @@ +Connection opened +Table Name is t1 +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test001n b/test/sqlapi/Csql/DDLStmt/exp.test001n new file mode 100644 index 00000000..791edade --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test001n @@ -0,0 +1,4 @@ +Connection opened +Table Name is t1 +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test002 b/test/sqlapi/Csql/DDLStmt/exp.test002 new file mode 100644 index 00000000..6bbd5eb9 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test002 @@ -0,0 +1,18 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT DEFAULT 1,f2 SMALLINT DEFAULT 11,f3 INT DEFAULT 111,f4 BIGINT DEFAULT 1111,f5 CHAR(20) DEFAULT 'CSQL1',f6 VARCHAR(30) DEFAULT 'Lakshya1',f7 FLOAT DEFAULT 11.11,f8 DOUBLE DEFAULT 1111.11,f9 DATE DEFAULT '2001-01-01',f10 TIME DEFAULT '01:01:01',f11 TIMESTAMP DEFAULT '2001-01-01 01:01:01'); +Table Name is t1 +INSERT INTO t1(f1) VALUES(1); +INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)= | f6(varchar)=Lakshya1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=1 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +3 rows selected +Prepared +Executed +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=2 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +3 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test002n b/test/sqlapi/Csql/DDLStmt/exp.test002n new file mode 100644 index 00000000..6bbd5eb9 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test002n @@ -0,0 +1,18 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT DEFAULT 1,f2 SMALLINT DEFAULT 11,f3 INT DEFAULT 111,f4 BIGINT DEFAULT 1111,f5 CHAR(20) DEFAULT 'CSQL1',f6 VARCHAR(30) DEFAULT 'Lakshya1',f7 FLOAT DEFAULT 11.11,f8 DOUBLE DEFAULT 1111.11,f9 DATE DEFAULT '2001-01-01',f10 TIME DEFAULT '01:01:01',f11 TIMESTAMP DEFAULT '2001-01-01 01:01:01'); +Table Name is t1 +INSERT INTO t1(f1) VALUES(1); +INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)= | f6(varchar)=Lakshya1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=1 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +3 rows selected +Prepared +Executed +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=2 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +3 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test003 b/test/sqlapi/Csql/DDLStmt/exp.test003 new file mode 100644 index 00000000..22babce3 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test003 @@ -0,0 +1,7 @@ +Connection opened +REATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL);Table Name is t1 +INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +0 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test003n b/test/sqlapi/Csql/DDLStmt/exp.test003n new file mode 100644 index 00000000..22babce3 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test003n @@ -0,0 +1,7 @@ +Connection opened +REATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL);Table Name is t1 +INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +0 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test004 b/test/sqlapi/Csql/DDLStmt/exp.test004 new file mode 100644 index 00000000..e23f184f --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test004 @@ -0,0 +1,44 @@ +Connection opened +Pkey table pkeyTINY can not be dropped withouting dropping Fkey Table fkeyTINY +Pkey table pkeySMALL can not be dropped withouting dropping Fkey Table fkeySMALL +Pkey table pkeyINT can not be dropped withouting dropping Fkey Table fkeyINT +Pkey table pkeyBIG can not be dropped withouting dropping Fkey Table fkeyBIG +Pkey table pkeyCHAR can not be dropped withouting dropping Fkey Table fkeyCHAR +Pkey table pkeyVARCHAR can not be dropped withouting dropping Fkey Table fkeyVARCHAR +Pkey table pkeyDATE can not be dropped withouting dropping Fkey Table fkeyDATE +Pkey table pkeyTIME can not be dropped withouting dropping Fkey Table fkeyTIME + TABLES + -------- + pkeyTINY + fkeyTINY + pkeySMALL + fkeySMALL + pkeyINT + fkeyINT + pkeyBIG + fkeyBIG + pkeyCHAR + fkeyCHAR + pkeyVARCHAR + fkeyVARCHAR + pkeyDATE + fkeyDATE + pkeyTIME + fkeyTIME +fkeyTINY Table Dropped +pkeyTINY Table Dropped +fkeySMALL Table Dropped +pkeySMALL Table Dropped +fkeyINT Table Dropped +pkeyINT Table Dropped +fkeyBIG Table Dropped +pkeyBIG Table Dropped +fkeyCHAR Table Dropped +pkeyCHAR Table Dropped +fkeyVARCHAR Table Dropped +pkeyVARCHAR Table Dropped +fkeyDATE Table Dropped +pkeyDATE Table Dropped +fkeyTIME Table Dropped +pkeyTIME Table Dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test004n b/test/sqlapi/Csql/DDLStmt/exp.test004n new file mode 100644 index 00000000..e23f184f --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test004n @@ -0,0 +1,44 @@ +Connection opened +Pkey table pkeyTINY can not be dropped withouting dropping Fkey Table fkeyTINY +Pkey table pkeySMALL can not be dropped withouting dropping Fkey Table fkeySMALL +Pkey table pkeyINT can not be dropped withouting dropping Fkey Table fkeyINT +Pkey table pkeyBIG can not be dropped withouting dropping Fkey Table fkeyBIG +Pkey table pkeyCHAR can not be dropped withouting dropping Fkey Table fkeyCHAR +Pkey table pkeyVARCHAR can not be dropped withouting dropping Fkey Table fkeyVARCHAR +Pkey table pkeyDATE can not be dropped withouting dropping Fkey Table fkeyDATE +Pkey table pkeyTIME can not be dropped withouting dropping Fkey Table fkeyTIME + TABLES + -------- + pkeyTINY + fkeyTINY + pkeySMALL + fkeySMALL + pkeyINT + fkeyINT + pkeyBIG + fkeyBIG + pkeyCHAR + fkeyCHAR + pkeyVARCHAR + fkeyVARCHAR + pkeyDATE + fkeyDATE + pkeyTIME + fkeyTIME +fkeyTINY Table Dropped +pkeyTINY Table Dropped +fkeySMALL Table Dropped +pkeySMALL Table Dropped +fkeyINT Table Dropped +pkeyINT Table Dropped +fkeyBIG Table Dropped +pkeyBIG Table Dropped +fkeyCHAR Table Dropped +pkeyCHAR Table Dropped +fkeyVARCHAR Table Dropped +pkeyVARCHAR Table Dropped +fkeyDATE Table Dropped +pkeyDATE Table Dropped +fkeyTIME Table Dropped +pkeyTIME Table Dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test005 b/test/sqlapi/Csql/DDLStmt/exp.test005 new file mode 100644 index 00000000..73efc231 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test005 @@ -0,0 +1,19 @@ +Connection opened +Auto_increment can not be applied on char datatype +Auto_increment can not be applied on varchar datatype +Auto_increment can not be applied on float datatype +Auto_increment can not be applied on double datatype +Auto_increment can not be applied on date datatype +Auto_increment can not be applied on time datatype +Auto_increment can not be applied on timestamp datatype + TABLES + -------- + AUTOINCTINY + AUTOINCSMALL + AUTOINCINT + AUTOINCBIG +AUTOINCTINY Table Dropped +AUTOINCSMALL Table Dropped +AUTOINCINT Table Dropped +AUTOINCBIG Table Dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test005n b/test/sqlapi/Csql/DDLStmt/exp.test005n new file mode 100644 index 00000000..73efc231 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test005n @@ -0,0 +1,19 @@ +Connection opened +Auto_increment can not be applied on char datatype +Auto_increment can not be applied on varchar datatype +Auto_increment can not be applied on float datatype +Auto_increment can not be applied on double datatype +Auto_increment can not be applied on date datatype +Auto_increment can not be applied on time datatype +Auto_increment can not be applied on timestamp datatype + TABLES + -------- + AUTOINCTINY + AUTOINCSMALL + AUTOINCINT + AUTOINCBIG +AUTOINCTINY Table Dropped +AUTOINCSMALL Table Dropped +AUTOINCINT Table Dropped +AUTOINCBIG Table Dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test006 b/test/sqlapi/Csql/DDLStmt/exp.test006 new file mode 100644 index 00000000..1229ac12 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test006 @@ -0,0 +1,14 @@ +Connection opened +Table MASTER Created +Table COPYMASTER Created +Table COPYMASTER_FIELDLEVEL Created +Table COPYMASTER_DUPLICATEFIELD can not be Created because of duplicate fields + TABLES + -------- + MASTER + COPYMASTER + COPYMASTER_FIELDLEVEL +MASTER Table Dropped +COPYMASTER Table Dropped +COPYMASTER_FIELDLEVEL Table Dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test006n b/test/sqlapi/Csql/DDLStmt/exp.test006n new file mode 100644 index 00000000..1229ac12 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test006n @@ -0,0 +1,14 @@ +Connection opened +Table MASTER Created +Table COPYMASTER Created +Table COPYMASTER_FIELDLEVEL Created +Table COPYMASTER_DUPLICATEFIELD can not be Created because of duplicate fields + TABLES + -------- + MASTER + COPYMASTER + COPYMASTER_FIELDLEVEL +MASTER Table Dropped +COPYMASTER Table Dropped +COPYMASTER_FIELDLEVEL Table Dropped +Connection Closed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test007.ksh b/test/sqlapi/Csql/DDLStmt/exp.test007.ksh new file mode 100644 index 00000000..93264d1f --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test007.ksh @@ -0,0 +1,25 @@ +Connection opened +Table t1 Created +Hash Index Created on TINYINT field f1 +Hash Index Created on SMALLINT field f2 +Hash Index Created on INT field f3 +Hash Index Created on BIGINT field f4 +Hash Index Created on CHAR field f5 +Hash Index Created on VARCHAR field f6 +Hash Index Created on DATE field f9 +Hash Index Created on TIME field f10 + TABLES + -------- + t1 +Connection Closed +Usage: catalog [-u username] [-p passwd] [-l] [-i] [-d] [-T table] [-I index] [-D ] + l -> list all table with field information + list all Index information + i -> reinitialize catalog tables. Drops all tables. + d -> print db usage statistics + T -> list table information + I -> list index information + D -> print debug information for system tables +Note: If multiple options are specified, last one will be considered. +echo drop table t1; +Statement Executed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test007n.ksh b/test/sqlapi/Csql/DDLStmt/exp.test007n.ksh new file mode 100644 index 00000000..93264d1f --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test007n.ksh @@ -0,0 +1,25 @@ +Connection opened +Table t1 Created +Hash Index Created on TINYINT field f1 +Hash Index Created on SMALLINT field f2 +Hash Index Created on INT field f3 +Hash Index Created on BIGINT field f4 +Hash Index Created on CHAR field f5 +Hash Index Created on VARCHAR field f6 +Hash Index Created on DATE field f9 +Hash Index Created on TIME field f10 + TABLES + -------- + t1 +Connection Closed +Usage: catalog [-u username] [-p passwd] [-l] [-i] [-d] [-T table] [-I index] [-D ] + l -> list all table with field information + list all Index information + i -> reinitialize catalog tables. Drops all tables. + d -> print db usage statistics + T -> list table information + I -> list index information + D -> print debug information for system tables +Note: If multiple options are specified, last one will be considered. +echo drop table t1; +Statement Executed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test008.ksh b/test/sqlapi/Csql/DDLStmt/exp.test008.ksh new file mode 100644 index 00000000..5e638d71 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test008.ksh @@ -0,0 +1,169 @@ +Connection opened +Table t1 Created +Tree Index Created on TINYINT field f1 +Tree Index Created on SMALLINT field f2 +Tree Index Created on INT field f3 +Tree Index Created on BIGINT field f4 +Tree Index Created on CHAR field f5 +Tree Index Created on VARCHAR field f6 +Tree Index Created on FLOAT field f7 +Tree Index Created on DOUBLE field f8 +Tree Index Created on DATE field f9 +Tree Index Created on TIME field f10 +Tree Index Created on TIMESTAMP field f11 + TABLES + -------- + t1 +Connection Closed + + + t1 + + f1 + 4 + 4 + 0 + 0 + 0 + + + + f2 + 3 + 4 + 0 + 0 + 0 + + + + f3 + 0 + 4 + 0 + 0 + 0 + + + + f4 + 2 + 8 + 0 + 0 + 0 + + + + f5 + 30 + 20 + 0 + 0 + 0 + + + + f6 + 32 + 32 + 0 + 0 + 0 + + + + f7 + 11 + 4 + 0 + 0 + 0 + + + + f8 + 10 + 8 + 0 + 0 + 0 + + + + f9 + 20 + 4 + 0 + 0 + 0 + + + + f10 + 21 + 4 + 0 + 0 + 0 + + + + f11 + 22 + 8 + 0 + 0 + 0 + + + +
+ + idxtiny + Tree Index + t1
+ f1 + idxsmall + Tree Index + t1
+ f2 + idxint + Tree Index + t1
+ f3 + idxbig + Tree Index + t1
+ f4 + idxchar + Tree Index + t1
+ f5 + idxvarchar + Tree Index + t1
+ f6 + idxfloat + Tree Index + t1
+ f7 + idxdouble + Tree Index + t1
+ f8 + idxdate + Tree Index + t1
+ f9 + idxtime + Tree Index + t1
+ f10 + idxtimestamp + Tree Index + t1
+ f11 +
+echo drop table t1; +Statement Executed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test008n.ksh b/test/sqlapi/Csql/DDLStmt/exp.test008n.ksh new file mode 100644 index 00000000..5e638d71 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test008n.ksh @@ -0,0 +1,169 @@ +Connection opened +Table t1 Created +Tree Index Created on TINYINT field f1 +Tree Index Created on SMALLINT field f2 +Tree Index Created on INT field f3 +Tree Index Created on BIGINT field f4 +Tree Index Created on CHAR field f5 +Tree Index Created on VARCHAR field f6 +Tree Index Created on FLOAT field f7 +Tree Index Created on DOUBLE field f8 +Tree Index Created on DATE field f9 +Tree Index Created on TIME field f10 +Tree Index Created on TIMESTAMP field f11 + TABLES + -------- + t1 +Connection Closed + + + t1 + + f1 + 4 + 4 + 0 + 0 + 0 + + + + f2 + 3 + 4 + 0 + 0 + 0 + + + + f3 + 0 + 4 + 0 + 0 + 0 + + + + f4 + 2 + 8 + 0 + 0 + 0 + + + + f5 + 30 + 20 + 0 + 0 + 0 + + + + f6 + 32 + 32 + 0 + 0 + 0 + + + + f7 + 11 + 4 + 0 + 0 + 0 + + + + f8 + 10 + 8 + 0 + 0 + 0 + + + + f9 + 20 + 4 + 0 + 0 + 0 + + + + f10 + 21 + 4 + 0 + 0 + 0 + + + + f11 + 22 + 8 + 0 + 0 + 0 + + + +
+ + idxtiny + Tree Index + t1
+ f1 + idxsmall + Tree Index + t1
+ f2 + idxint + Tree Index + t1
+ f3 + idxbig + Tree Index + t1
+ f4 + idxchar + Tree Index + t1
+ f5 + idxvarchar + Tree Index + t1
+ f6 + idxfloat + Tree Index + t1
+ f7 + idxdouble + Tree Index + t1
+ f8 + idxdate + Tree Index + t1
+ f9 + idxtime + Tree Index + t1
+ f10 + idxtimestamp + Tree Index + t1
+ f11 +
+echo drop table t1; +Statement Executed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test009.ksh b/test/sqlapi/Csql/DDLStmt/exp.test009.ksh new file mode 100644 index 00000000..0d6018fa --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test009.ksh @@ -0,0 +1,367 @@ +Connection opened +Table t1 Created +Index Created +Index Created +Index Created +Index Created +Index Created +Index Created +Index Created +Index Already Exist +Index Created +Index Created +Index Created +Index Created +Index Created +Index Created +Index Already Exist +Index Already Exist +Index Created +Index Created +Index Created +Index Created +Index Created +Index Already Exist +Index Already Exist +Index Already Exist +Index Created +Index Created +Index Created +Index Created +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Created +Index Created +Index Created +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Created +Index Created +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Created +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Created +Index Created +Index Created +Index Created +Index Created +Index Created + TABLES + -------- + t1 +Connection Closed + + + t1 + + f1 + 4 + 4 + 0 + 0 + 0 + + + + f2 + 3 + 4 + 0 + 0 + 0 + + + + f3 + 0 + 4 + 0 + 0 + 0 + + + + f4 + 2 + 8 + 0 + 0 + 0 + + + + f5 + 30 + 20 + 0 + 0 + 0 + + + + f6 + 32 + 32 + 0 + 0 + 0 + + + + f7 + 11 + 4 + 0 + 0 + 0 + + + + f8 + 10 + 8 + 0 + 0 + 0 + + + + f9 + 20 + 4 + 0 + 0 + 0 + + + + f10 + 21 + 4 + 0 + 0 + 0 + + + + f11 + 22 + 8 + 0 + 0 + 0 + + + +
+ + idxtinyint_smallint + Hash Index + t1
+ f1 + f2 + idxtinyint_int + Hash Index + t1
+ f1 + f3 + idxtinyint_bigint + Hash Index + t1
+ f1 + f4 + idxtinyint_char + Hash Index + t1
+ f1 + f5 + idxtinyint_varchar + Hash Index + t1
+ f1 + f6 + idxtinyint_date + Hash Index + t1
+ f1 + f9 + idxtinyint_time + Hash Index + t1
+ f1 + f10 + idxsmallint_int + Hash Index + t1
+ f2 + f3 + idxsmallint_bigint + Hash Index + t1
+ f2 + f4 + idxsmallint_char + Hash Index + t1
+ f2 + f5 + idxsmallint_varchar + Hash Index + t1
+ f2 + f6 + idxsmallint_date + Hash Index + t1
+ f2 + f9 + idxsmallint_time + Hash Index + t1
+ f2 + f10 + idxint_bigint + Hash Index + t1
+ f3 + f4 + idxint_char + Hash Index + t1
+ f3 + f5 + idxint_varchar + Hash Index + t1
+ f3 + f6 + idxint_date + Hash Index + t1
+ f3 + f9 + idxint_time + Hash Index + t1
+ f3 + f10 + idxbigint_char + Hash Index + t1
+ f4 + f5 + idxbigint_varchar + Hash Index + t1
+ f4 + f6 + idxbigint_date + Hash Index + t1
+ f4 + f9 + idxbigint_time + Hash Index + t1
+ f4 + f10 + idxchar_varchar + Hash Index + t1
+ f5 + f6 + idxchar_date + Hash Index + t1
+ f5 + f9 + idxchar_time + Hash Index + t1
+ f5 + f10 + idxvarchar_date + Hash Index + t1
+ f6 + f9 + idxvarchar_time + Hash Index + t1
+ f6 + f10 + idxdate_time + Hash Index + t1
+ f9 + f10 + idxtinyint_smallint_int + Hash Index + t1
+ f1 + f2 + f3 + idxtinyint_smallint_int_bigint + Hash Index + t1
+ f1 + f2 + f3 + f4 + idxtinyint_smallint_int_bigint_char + Hash Index + t1
+ f1 + f2 + f3 + f4 + f5 + idxtinyint_smallint_int_bigint_char_varchar + Hash Index + t1
+ f1 + f2 + f3 + f4 + f5 + f6 + idxtinyint_smallint_int_bigint_char_varchar_date + Hash Index + t1
+ f1 + f2 + f3 + f4 + f5 + f6 + f9 + idxtinyint_smallint_int_bigint_char_varchar_date_time + Hash Index + t1
+ f1 + f2 + f3 + f4 + f5 + f6 + f9 + f10 +
+echo drop table t1; +Statement Executed diff --git a/test/sqlapi/Csql/DDLStmt/exp.test009n.ksh b/test/sqlapi/Csql/DDLStmt/exp.test009n.ksh new file mode 100644 index 00000000..0d6018fa --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/exp.test009n.ksh @@ -0,0 +1,367 @@ +Connection opened +Table t1 Created +Index Created +Index Created +Index Created +Index Created +Index Created +Index Created +Index Created +Index Already Exist +Index Created +Index Created +Index Created +Index Created +Index Created +Index Created +Index Already Exist +Index Already Exist +Index Created +Index Created +Index Created +Index Created +Index Created +Index Already Exist +Index Already Exist +Index Already Exist +Index Created +Index Created +Index Created +Index Created +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Created +Index Created +Index Created +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Created +Index Created +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Created +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Already Exist +Index Created +Index Created +Index Created +Index Created +Index Created +Index Created + TABLES + -------- + t1 +Connection Closed + + + t1 + + f1 + 4 + 4 + 0 + 0 + 0 + + + + f2 + 3 + 4 + 0 + 0 + 0 + + + + f3 + 0 + 4 + 0 + 0 + 0 + + + + f4 + 2 + 8 + 0 + 0 + 0 + + + + f5 + 30 + 20 + 0 + 0 + 0 + + + + f6 + 32 + 32 + 0 + 0 + 0 + + + + f7 + 11 + 4 + 0 + 0 + 0 + + + + f8 + 10 + 8 + 0 + 0 + 0 + + + + f9 + 20 + 4 + 0 + 0 + 0 + + + + f10 + 21 + 4 + 0 + 0 + 0 + + + + f11 + 22 + 8 + 0 + 0 + 0 + + + +
+ + idxtinyint_smallint + Hash Index + t1
+ f1 + f2 + idxtinyint_int + Hash Index + t1
+ f1 + f3 + idxtinyint_bigint + Hash Index + t1
+ f1 + f4 + idxtinyint_char + Hash Index + t1
+ f1 + f5 + idxtinyint_varchar + Hash Index + t1
+ f1 + f6 + idxtinyint_date + Hash Index + t1
+ f1 + f9 + idxtinyint_time + Hash Index + t1
+ f1 + f10 + idxsmallint_int + Hash Index + t1
+ f2 + f3 + idxsmallint_bigint + Hash Index + t1
+ f2 + f4 + idxsmallint_char + Hash Index + t1
+ f2 + f5 + idxsmallint_varchar + Hash Index + t1
+ f2 + f6 + idxsmallint_date + Hash Index + t1
+ f2 + f9 + idxsmallint_time + Hash Index + t1
+ f2 + f10 + idxint_bigint + Hash Index + t1
+ f3 + f4 + idxint_char + Hash Index + t1
+ f3 + f5 + idxint_varchar + Hash Index + t1
+ f3 + f6 + idxint_date + Hash Index + t1
+ f3 + f9 + idxint_time + Hash Index + t1
+ f3 + f10 + idxbigint_char + Hash Index + t1
+ f4 + f5 + idxbigint_varchar + Hash Index + t1
+ f4 + f6 + idxbigint_date + Hash Index + t1
+ f4 + f9 + idxbigint_time + Hash Index + t1
+ f4 + f10 + idxchar_varchar + Hash Index + t1
+ f5 + f6 + idxchar_date + Hash Index + t1
+ f5 + f9 + idxchar_time + Hash Index + t1
+ f5 + f10 + idxvarchar_date + Hash Index + t1
+ f6 + f9 + idxvarchar_time + Hash Index + t1
+ f6 + f10 + idxdate_time + Hash Index + t1
+ f9 + f10 + idxtinyint_smallint_int + Hash Index + t1
+ f1 + f2 + f3 + idxtinyint_smallint_int_bigint + Hash Index + t1
+ f1 + f2 + f3 + f4 + idxtinyint_smallint_int_bigint_char + Hash Index + t1
+ f1 + f2 + f3 + f4 + f5 + idxtinyint_smallint_int_bigint_char_varchar + Hash Index + t1
+ f1 + f2 + f3 + f4 + f5 + f6 + idxtinyint_smallint_int_bigint_char_varchar_date + Hash Index + t1
+ f1 + f2 + f3 + f4 + f5 + f6 + f9 + idxtinyint_smallint_int_bigint_char_varchar_date_time + Hash Index + t1
+ f1 + f2 + f3 + f4 + f5 + f6 + f9 + f10 +
+echo drop table t1; +Statement Executed diff --git a/test/sqlapi/Csql/DDLStmt/hashindexonalldatatype.c b/test/sqlapi/Csql/DDLStmt/hashindexonalldatatype.c new file mode 100644 index 00000000..f142af05 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/hashindexonalldatatype.c @@ -0,0 +1,132 @@ +/* + Create Hash indexes on the fields which are (TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,DATE,TIME). + CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP); + CREATE INDEX idxtiny ON t1(f1) HASH; + CREATE INDEX idxsmall ON t1(f2) HASH; + CREATE INDEX idxint ON t1(f3) HASH; + CREATE INDEX idxbig ON t1(f4) HASH; + CREATE INDEX idxchar ON t1(f5) HASH; + CREATE INDEX idxvarchar ON t(f6) HASH; + CREATE INDEX idxdate ON t1(f7) HASH; + CREATE INDEX idxtime ON t1(f8) HASH; + All the indexes needs to be created +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + strcpy(statement,"CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + printf("Table t1 Created\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxtiny ON t1(f1) HASH;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + printf("Hash Index Created on TINYINT field f1\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxsmall ON t1(f2) HASH;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + printf("Hash Index Created on SMALLINT field f2\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxint ON t1(f3) HASH;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + printf("Hash Index Created on INT field f3\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxbig ON t1(f4) HASH;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("Hash Index Created on BIGINT field f4\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxchar ON t1(f5) HASH;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("Hash Index Created on CHAR field f5\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxvarchar ON t1(f6) HASH;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 14; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 15; } + printf("Hash Index Created on VARCHAR field f6\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxdate ON t1(f9) HASH;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 16; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 17; } + printf("Hash Index Created on DATE field f9\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxtime ON t1(f10) HASH;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 18; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 19; } + printf("Hash Index Created on TIME field f10\n"); + stmt->free(); + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 20; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 21; } + printf("\t TABLES\n"); + printf("\t--------\n"); + while(stmt->next() !=NULL) { + printf("\t%s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DDLStmt/notnullonalldatatype.c b/test/sqlapi/Csql/DDLStmt/notnullonalldatatype.c new file mode 100644 index 00000000..f61cd9a2 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/notnullonalldatatype.c @@ -0,0 +1,158 @@ +/* + NOT NULL Constraint Testing with all datatypes. + CREATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL); + Try to put null values in Not Null fields,it should not be allowed +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("REATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL);"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n"); + rv = stmt->prepare("INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);"); + if(rv!=OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); con->disconnect(); delete stmt; delete con; + return 6; + } + rv = stmt->execute(rows); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); con->disconnect(); delete stmt; delete con; + return 7; + } + + printf("INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n"); + rv = stmt->prepare("INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);"); + if(rv!=OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); con->disconnect(); delete stmt; delete con; + return 8; + } + rv = stmt->execute(rows); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); con->disconnect(); delete stmt; delete con; + return 9; + } + + con->commit(); + stmt->free(); + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[30]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 10; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DDLStmt/pkeyfkeyonalldatatype.c b/test/sqlapi/Csql/DDLStmt/pkeyfkeyonalldatatype.c new file mode 100644 index 00000000..cf8ee6bd --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/pkeyfkeyonalldatatype.c @@ -0,0 +1,312 @@ +/* + Primary key(t1) and foreign key(t2) testing, for all datatypes. + try to drop t1 . it should fail. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + strcpy(statement,"CREATE TABLE pkeyTINY(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, primary key(f1));"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); + + strcpy(statement,"CREATE TABLE fkeyTINY(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, foreign key(f1) references pkeyTINY(f1));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + stmt->free(); + + rv = stmt->prepare("DROP TABLE pkeyTINY;"); + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 6; } + printf("Pkey table pkeyTINY can not be dropped withouting dropping Fkey Table fkeyTINY\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE pkeySMALL(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, primary key(f2));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + stmt->free(); + + strcpy(statement,"CREATE TABLE fkeySMALL(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, foreign key(f2) references pkeySMALL(f2));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + stmt->free(); + + rv = stmt->prepare("DROP TABLE pkeySMALL;"); + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("Pkey table pkeySMALL can not be dropped withouting dropping Fkey Table fkeySMALL\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE pkeyINT(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, primary key(f3));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + stmt->free(); + + strcpy(statement,"CREATE TABLE fkeyINT(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, foreign key(f3) references pkeyINT(f3));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 14; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 15; } + stmt->free(); + + rv = stmt->prepare("DROP TABLE pkeyINT;"); + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 16; } + printf("Pkey table pkeyINT can not be dropped withouting dropping Fkey Table fkeyINT\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE pkeyBIG(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, primary key(f4));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 17; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 18; } + stmt->free(); + + strcpy(statement,"CREATE TABLE fkeyBIG(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, foreign key(f4) references pkeyBIG(f4));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 19; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 20; } + stmt->free(); + + rv = stmt->prepare("DROP TABLE pkeyBIG;"); + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 21; } + printf("Pkey table pkeyBIG can not be dropped withouting dropping Fkey Table fkeyBIG\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE pkeyCHAR(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, primary key(f5));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 22; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 23; } + stmt->free(); + + strcpy(statement,"CREATE TABLE fkeyCHAR(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, foreign key(f5) references pkeyCHAR(f5));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 24; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 25; } + stmt->free(); + + rv = stmt->prepare("DROP TABLE pkeyCHAR;"); + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 26; } + printf("Pkey table pkeyCHAR can not be dropped withouting dropping Fkey Table fkeyCHAR\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE pkeyVARCHAR(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, primary key(f6));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 27; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 28; } + stmt->free(); + + strcpy(statement,"CREATE TABLE fkeyVARCHAR(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, foreign key(f6) references pkeyVARCHAR(f6));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 29; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 30; } + stmt->free(); + + rv = stmt->prepare("DROP TABLE pkeyVARCHAR;"); + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 31; } + printf("Pkey table pkeyVARCHAR can not be dropped withouting dropping Fkey Table fkeyVARCHAR\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE pkeyDATE(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, primary key(f9));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 32; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 33; } + stmt->free(); + + strcpy(statement,"CREATE TABLE fkeyDATE(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, foreign key(f9) references pkeyDATE(f9));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 34; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 35; } + stmt->free(); + + rv = stmt->prepare("DROP TABLE pkeyDATE;"); + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 36; } + printf("Pkey table pkeyDATE can not be dropped withouting dropping Fkey Table fkeyDATE\n"); + stmt->free(); + + strcpy(statement,"CREATE TABLE pkeyTIME(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, primary key(f10));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 37; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 38; } + stmt->free(); + + strcpy(statement,"CREATE TABLE fkeyTIME(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL, foreign key(f10) references pkeyTIME(f10));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 39; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 40; } + stmt->free(); + + rv = stmt->prepare("DROP TABLE pkeyTIME;"); + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 41; } + printf("Pkey table pkeyTIME can not be dropped withouting dropping Fkey Table fkeyTIME\n"); + stmt->free(); + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 42; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 43; } + printf("\t TABLES\n"); + printf("\t--------\n"); + while(stmt->next() !=NULL) { + printf("\t%s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Droping tables + rv = stmt->prepare("DROP TABLE fkeyTINY;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 44; } + printf("fkeyTINY Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE pkeyTINY;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 45; } + printf("pkeyTINY Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE fkeySMALL;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 46; } + printf("fkeySMALL Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE pkeySMALL;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 47; } + printf("pkeySMALL Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE fkeyINT;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 48; } + printf("fkeyINT Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE pkeyINT;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 49; } + printf("pkeyINT Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE fkeyBIG;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 50; } + printf("fkeyBIG Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE pkeyBIG;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 51; } + printf("pkeyBIG Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE fkeyCHAR;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 52; } + printf("fkeyCHAR Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE pkeyCHAR;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 53; } + printf("pkeyCHAR Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE fkeyVARCHAR;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 54; } + printf("fkeyVARCHAR Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE pkeyVARCHAR;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 55; } + printf("pkeyVARCHAR Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE fkeyDATE;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 56; } + printf("fkeyDATE Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE pkeyDATE;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 57; } + printf("pkeyDATE Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE fkeyTIME;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 58; } + printf("fkeyTIME Table Dropped\n"); + stmt->free(); + rv = stmt->prepare("DROP TABLE pkeyTIME;"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 59; } + printf("pkeyTIME Table Dropped\n"); + stmt->free(); + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 60; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 61; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DDLStmt/test007.ksh b/test/sqlapi/Csql/DDLStmt/test007.ksh new file mode 100755 index 00000000..18541fdc --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/test007.ksh @@ -0,0 +1,40 @@ +#!/bin/ksh +# Create Hash indexes on the fields which are (TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,DATE,TIME). +# CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP); +# CREATE INDEX idxtiny ON t1(f1) HASH; +# CREATE INDEX idxsmall ON t1(f2) HASH; +# CREATE INDEX idxint ON t1(f3) HASH; +# CREATE INDEX idxbig ON t1(f4) HASH; +# CREATE INDEX idxchar ON t1(f5) HASH; +# CREATE INDEX idxvarchar ON t(f6) HASH; +# CREATE INDEX idxdate ON t1(f7) HASH; +# CREATE INDEX idxtime ON t1(f8) HASH; +# All the indexes needs to be created + +FILE=${PWD}/sqlapi/Csql/DDLStmt/hashindexonalldatatype +REL_PATH=. +if [ -s "$FILE" ] +then + REL_PATH=`pwd`/sqlapi/Csql/DDLStmt +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full ${REL_PATH}/hashindexonalldatatype +else + $REL_PATH/hashindexonalldatatype +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +else + $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +fi + +echo "echo drop table t1;" >${REL_PATH}/drop_t1.sql +echo "drop table t1;" >>${REL_PATH}/drop_t1.sql + +$CSQL_INSTALL_ROOT/bin/csql -u root -p manager -s ${REL_PATH}/drop_t1.sql +rm -f ${REL_PATH}/drop_t1.sql +exit 0 diff --git a/test/sqlapi/Csql/DDLStmt/test007n.ksh b/test/sqlapi/Csql/DDLStmt/test007n.ksh new file mode 100755 index 00000000..35c8cd39 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/test007n.ksh @@ -0,0 +1,40 @@ +#!/bin/ksh +# Create Hash indexes on the fields which are (TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,DATE,TIME). +# CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP); +# CREATE INDEX idxtiny ON t1(f1) HASH; +# CREATE INDEX idxsmall ON t1(f2) HASH; +# CREATE INDEX idxint ON t1(f3) HASH; +# CREATE INDEX idxbig ON t1(f4) HASH; +# CREATE INDEX idxchar ON t1(f5) HASH; +# CREATE INDEX idxvarchar ON t(f6) HASH; +# CREATE INDEX idxdate ON t1(f7) HASH; +# CREATE INDEX idxtime ON t1(f8) HASH; +# All the indexes needs to be created + +FILE=${PWD}/sqlapi/Csql/DDLStmt/hashindexonalldatatypen +REL_PATH=. +if [ -s "$FILE" ] +then + REL_PATH=`pwd`/sqlapi/Csql/DDLStmt +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full ${REL_PATH}/hashindexonalldatatypen +else + $REL_PATH/hashindexonalldatatypen +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +else + $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +fi + +echo "echo drop table t1;" >${REL_PATH}/drop_t1.sql +echo "drop table t1;" >>${REL_PATH}/drop_t1.sql + +$CSQL_INSTALL_ROOT/bin/csql -u root -p manager -s ${REL_PATH}/drop_t1.sql +rm -f ${REL_PATH}/drop_t1.sql +exit 0 diff --git a/test/sqlapi/Csql/DDLStmt/test008.ksh b/test/sqlapi/Csql/DDLStmt/test008.ksh new file mode 100755 index 00000000..5fbcdc1b --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/test008.ksh @@ -0,0 +1,43 @@ +#!/bin/ksh +# Create Tree indexes on the fields which are (TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,DATE,TIME). +# CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP); +# CREATE INDEX idxtiny ON t1(f1) TREE; +# CREATE INDEX idxsmall ON t1(f2) TREE; +# CREATE INDEX idxint ON t1(f3) TREE; +# CREATE INDEX idxbig ON t1(f4) TREE; +# CREATE INDEX idxchar ON t1(f5) TREE; +# CREATE INDEX idxvarchar ON t(f6) TREE; +# CREATE INDEX idxfloat ON t1(f7) TREE; +# CREATE INDEX idxdouble ON t1(f8) TREE; +# CREATE INDEX idxdate ON t(f9) TREE; +# CREATE INDEX idxtime ON t1(f10) TREE; +# CREATE INDEX idxtimestamp ON t1(f11) TREE; +# All the indexes needs to be created + +FILE=${PWD}/sqlapi/Csql/DDLStmt/treeindexonalldatatype +REL_PATH=. +if [ -s "$FILE" ] +then + REL_PATH=`pwd`/sqlapi/Csql/DDLStmt +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full ${REL_PATH}/treeindexonalldatatype +else + $REL_PATH/treeindexonalldatatype +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +else + $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +fi + +echo "echo drop table t1;" >${REL_PATH}/drop_t1.sql +echo "drop table t1;" >>${REL_PATH}/drop_t1.sql + +$CSQL_INSTALL_ROOT/bin/csql -u root -p manager -s ${REL_PATH}/drop_t1.sql +rm -f ${REL_PATH}/drop_t1.sql +exit 0 diff --git a/test/sqlapi/Csql/DDLStmt/test008n.ksh b/test/sqlapi/Csql/DDLStmt/test008n.ksh new file mode 100755 index 00000000..2230c644 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/test008n.ksh @@ -0,0 +1,43 @@ +#!/bin/ksh +# Create Tree indexes on the fields which are (TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,DATE,TIME). +# CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP); +# CREATE INDEX idxtiny ON t1(f1) TREE; +# CREATE INDEX idxsmall ON t1(f2) TREE; +# CREATE INDEX idxint ON t1(f3) TREE; +# CREATE INDEX idxbig ON t1(f4) TREE; +# CREATE INDEX idxchar ON t1(f5) TREE; +# CREATE INDEX idxvarchar ON t(f6) TREE; +# CREATE INDEX idxfloat ON t1(f7) TREE; +# CREATE INDEX idxdouble ON t1(f8) TREE; +# CREATE INDEX idxdate ON t(f9) TREE; +# CREATE INDEX idxtime ON t1(f10) TREE; +# CREATE INDEX idxtimestamp ON t1(f11) TREE; +# All the indexes needs to be created + +FILE=${PWD}/sqlapi/Csql/DDLStmt/treeindexonalldatatypen +REL_PATH=. +if [ -s "$FILE" ] +then + REL_PATH=`pwd`/sqlapi/Csql/DDLStmt +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full ${REL_PATH}/treeindexonalldatatypen +else + $REL_PATH/treeindexonalldatatypen +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +else + $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +fi + +echo "echo drop table t1;" >${REL_PATH}/drop_t1.sql +echo "drop table t1;" >>${REL_PATH}/drop_t1.sql + +$CSQL_INSTALL_ROOT/bin/csql -u root -p manager -s ${REL_PATH}/drop_t1.sql +rm -f ${REL_PATH}/drop_t1.sql +exit 0 diff --git a/test/sqlapi/Csql/DDLStmt/test009.ksh b/test/sqlapi/Csql/DDLStmt/test009.ksh new file mode 100755 index 00000000..28c11fee --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/test009.ksh @@ -0,0 +1,102 @@ +#!/bin/ksh +# Composite tree index testing +# CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP); + +# CREATE INDEX idxtinyint_smallint ON t1(f1,f2) HASH; +# CREATE INDEX idxtinyint_int ON t1(f1,f3) HASH; +# CREATE INDEX idxtinyint_bigint ON t1(f1,f4) HASH; +# CREATE INDEX idxtinyint_char ON t1(f1,f5) HASH; +# CREATE INDEX idxtinyint_varchar ON t1(f1,f6) HASH; +# CREATE INDEX idxtinyint_date ON t1(f1,f9) HASH; +# CREATE INDEX idxtinyint_time ON t1(f1,f10) HASH; + +# CREATE INDEX idxsmallint_tinyint ON t1(f2,f1) HASH; should fail +# CREATE INDEX idxsmallint_int ON t1(f2,f3) HASH; +# CREATE INDEX idxsmallint_bigint ON t1(f2,f4) HASH; +# CREATE INDEX idxsmallint_char ON t1(f2,f5) HASH; +# CREATE INDEX idxsmallint_varchar ON t1(f2,f6) HASH; +# CREATE INDEX idxsmallint_date ON t1(f2,f9) HASH; +# CREATE INDEX idxsmallint_time ON t1(f2,f10) HASH; + +# CREATE INDEX idxint_tinyint ON t1(f3,f1) HASH; should fail +# CREATE INDEX idxint_smallint ON t1(f3,f2) HASH; should fail +# CREATE INDEX idxint_bigint ON t1(f3,f4) HASH; +# CREATE INDEX idxint_char ON t1(f3,f5) HASH; +# CREATE INDEX idxint_varchar ON t1(f3,f6) HASH; +# CREATE INDEX idxint_date ON t1(f3,f9) HASH; +# CREATE INDEX idxint_time ON t1(f3,f10) HASH; + +# CREATE INDEX idxbigint_tinyint ON t1(f4,f1) HASH; should fail +# CREATE INDEX idxbigint_smallint ON t1(f4,f2) HASH; should fail +# CREATE INDEX idxbigint_int ON t1(f4,f3) HASH; should fail +# CREATE INDEX idxbigint_char ON t1(f4,f5) HASH; +# CREATE INDEX idxbigint_varchar ON t1(f4,f6) HASH; +# CREATE INDEX idxbigint_date ON t1(f4,f9) HASH; +# CREATE INDEX idxbigint_time ON t1(f4,f10) HASH; + +# CREATE INDEX idxchar_tinyint ON t1(f5,f1) HASH; should fail +# CREATE INDEX idxchar_smallint ON t1(f5,f2) HASH; should fail +# CREATE INDEX idxchar_int ON t1(f5,f3) HASH; should fail +# CREATE INDEX idxchar_bigint ON t1(f5,f4) HASH; should fail +# CREATE INDEX idxchar_varchar ON t1(f5,f6) HASH; +# CREATE INDEX idxchar_date ON t1(f5,f9) HASH; +# CREATE INDEX idxchar_time ON t1(f5,f10) HASH; + +# CREATE INDEX idxvarchar_tinyint ON t1(f6,f1) HASH; should fail +# CREATE INDEX idxvarchar_smallint ON t1(f6,f2) HASH; should fail +# CREATE INDEX idxvarchar_int ON t1(f6,f3) HASH; should fail +# CREATE INDEX idxvarchar_bigint ON t1(f6,f4) HASH; should fail +# CREATE INDEX idxvarchar_char ON t1(f6,f5) HASH; should fail +# CREATE INDEX idxvarchar_date ON t1(f6,f9) HASH; +# CREATE INDEX idxvarchar_time ON t1(f6,f10) HASH; + +# CREATE INDEX idxdate_tinyint ON t1(f9,f1) HASH; should fail +# CREATE INDEX idxdate_smallint ON t1(f9,f2) HASH; should fail +# CREATE INDEX idxdate_int ON t1(f9,f3) HASH; should fail +# CREATE INDEX idxdate_bigint ON t1(f9,f4) HASH; should fail +# CREATE INDEX idxdate_char ON t1(f9,f5) HASH; should fail +# CREATE INDEX idxdate_date ON t1(f9,f6) HASH; should fail +# CREATE INDEX idxdate_time ON t1(f9,f10) HASH; + +# CREATE INDEX idxtime_tinyint ON t1(f10,f1) HASH; should fail +# CREATE INDEX idxtime_smallint ON t1(f10,f2) HASH; should fail +# CREATE INDEX idxtime_int ON t1(f10,f3) HASH; should fail +# CREATE INDEX idxtime_bigint ON t1(f10,f4) HASH; should fail +# CREATE INDEX idxtime_char ON t1(f10,f5) HASH; should fail +# CREATE INDEX idxtime_date ON t1(f10,f6) HASH; should fail +# CREATE INDEX idxtime_time ON t1(f10,f9) HASH; should fail + +# CREATE INDEX idxtinyint_smallint_int ON t1(f1,f2,f3) HASH; +# CREATE INDEX idxtinyint_smallint_int_bigint ON t1(f1,f2,f3,f4) HASH; +# CREATE INDEX idxtinyint_smallint_int_bigint_char ON t1(f1,f2,f3,f4,f5) HASH; +# CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar ON t1(f1,f2,f3,f4,f5,f6) HASH; +# CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar_date ON t1(f1,f2,f3,f4,f5,f6,f9) HASH; +# CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar_date_time ON t1(f1,f2,f3,f4,f5,f6,f9,f10) HASH; + +FILE=${PWD}/sqlapi/Csql/DDLStmt/compositehashonalldatatype +REL_PATH=. +if [ -s "$FILE" ] +then + REL_PATH=`pwd`/sqlapi/Csql/DDLStmt +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full ${REL_PATH}/compositehashonalldatatype +else + $REL_PATH/compositehashonalldatatype +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +else + $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +fi + +echo "echo drop table t1;" >${REL_PATH}/drop_t1.sql +echo "drop table t1;" >>${REL_PATH}/drop_t1.sql + +$CSQL_INSTALL_ROOT/bin/csql -u root -p manager -s ${REL_PATH}/drop_t1.sql +rm -f ${REL_PATH}/drop_t1.sql +exit 0 diff --git a/test/sqlapi/Csql/DDLStmt/test009n.ksh b/test/sqlapi/Csql/DDLStmt/test009n.ksh new file mode 100755 index 00000000..d273f0a9 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/test009n.ksh @@ -0,0 +1,102 @@ +#!/bin/ksh +# Composite tree index testing +# CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP); + +# CREATE INDEX idxtinyint_smallint ON t1(f1,f2) HASH; +# CREATE INDEX idxtinyint_int ON t1(f1,f3) HASH; +# CREATE INDEX idxtinyint_bigint ON t1(f1,f4) HASH; +# CREATE INDEX idxtinyint_char ON t1(f1,f5) HASH; +# CREATE INDEX idxtinyint_varchar ON t1(f1,f6) HASH; +# CREATE INDEX idxtinyint_date ON t1(f1,f9) HASH; +# CREATE INDEX idxtinyint_time ON t1(f1,f10) HASH; + +# CREATE INDEX idxsmallint_tinyint ON t1(f2,f1) HASH; should fail +# CREATE INDEX idxsmallint_int ON t1(f2,f3) HASH; +# CREATE INDEX idxsmallint_bigint ON t1(f2,f4) HASH; +# CREATE INDEX idxsmallint_char ON t1(f2,f5) HASH; +# CREATE INDEX idxsmallint_varchar ON t1(f2,f6) HASH; +# CREATE INDEX idxsmallint_date ON t1(f2,f9) HASH; +# CREATE INDEX idxsmallint_time ON t1(f2,f10) HASH; + +# CREATE INDEX idxint_tinyint ON t1(f3,f1) HASH; should fail +# CREATE INDEX idxint_smallint ON t1(f3,f2) HASH; should fail +# CREATE INDEX idxint_bigint ON t1(f3,f4) HASH; +# CREATE INDEX idxint_char ON t1(f3,f5) HASH; +# CREATE INDEX idxint_varchar ON t1(f3,f6) HASH; +# CREATE INDEX idxint_date ON t1(f3,f9) HASH; +# CREATE INDEX idxint_time ON t1(f3,f10) HASH; + +# CREATE INDEX idxbigint_tinyint ON t1(f4,f1) HASH; should fail +# CREATE INDEX idxbigint_smallint ON t1(f4,f2) HASH; should fail +# CREATE INDEX idxbigint_int ON t1(f4,f3) HASH; should fail +# CREATE INDEX idxbigint_char ON t1(f4,f5) HASH; +# CREATE INDEX idxbigint_varchar ON t1(f4,f6) HASH; +# CREATE INDEX idxbigint_date ON t1(f4,f9) HASH; +# CREATE INDEX idxbigint_time ON t1(f4,f10) HASH; + +# CREATE INDEX idxchar_tinyint ON t1(f5,f1) HASH; should fail +# CREATE INDEX idxchar_smallint ON t1(f5,f2) HASH; should fail +# CREATE INDEX idxchar_int ON t1(f5,f3) HASH; should fail +# CREATE INDEX idxchar_bigint ON t1(f5,f4) HASH; should fail +# CREATE INDEX idxchar_varchar ON t1(f5,f6) HASH; +# CREATE INDEX idxchar_date ON t1(f5,f9) HASH; +# CREATE INDEX idxchar_time ON t1(f5,f10) HASH; + +# CREATE INDEX idxvarchar_tinyint ON t1(f6,f1) HASH; should fail +# CREATE INDEX idxvarchar_smallint ON t1(f6,f2) HASH; should fail +# CREATE INDEX idxvarchar_int ON t1(f6,f3) HASH; should fail +# CREATE INDEX idxvarchar_bigint ON t1(f6,f4) HASH; should fail +# CREATE INDEX idxvarchar_char ON t1(f6,f5) HASH; should fail +# CREATE INDEX idxvarchar_date ON t1(f6,f9) HASH; +# CREATE INDEX idxvarchar_time ON t1(f6,f10) HASH; + +# CREATE INDEX idxdate_tinyint ON t1(f9,f1) HASH; should fail +# CREATE INDEX idxdate_smallint ON t1(f9,f2) HASH; should fail +# CREATE INDEX idxdate_int ON t1(f9,f3) HASH; should fail +# CREATE INDEX idxdate_bigint ON t1(f9,f4) HASH; should fail +# CREATE INDEX idxdate_char ON t1(f9,f5) HASH; should fail +# CREATE INDEX idxdate_date ON t1(f9,f6) HASH; should fail +# CREATE INDEX idxdate_time ON t1(f9,f10) HASH; + +# CREATE INDEX idxtime_tinyint ON t1(f10,f1) HASH; should fail +# CREATE INDEX idxtime_smallint ON t1(f10,f2) HASH; should fail +# CREATE INDEX idxtime_int ON t1(f10,f3) HASH; should fail +# CREATE INDEX idxtime_bigint ON t1(f10,f4) HASH; should fail +# CREATE INDEX idxtime_char ON t1(f10,f5) HASH; should fail +# CREATE INDEX idxtime_date ON t1(f10,f6) HASH; should fail +# CREATE INDEX idxtime_time ON t1(f10,f9) HASH; should fail + +# CREATE INDEX idxtinyint_smallint_int ON t1(f1,f2,f3) HASH; +# CREATE INDEX idxtinyint_smallint_int_bigint ON t1(f1,f2,f3,f4) HASH; +# CREATE INDEX idxtinyint_smallint_int_bigint_char ON t1(f1,f2,f3,f4,f5) HASH; +# CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar ON t1(f1,f2,f3,f4,f5,f6) HASH; +# CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar_date ON t1(f1,f2,f3,f4,f5,f6,f9) HASH; +# CREATE INDEX idxtinyint_smallint_int_bigint_char_varchar_date_time ON t1(f1,f2,f3,f4,f5,f6,f9,f10) HASH; + +FILE=${PWD}/sqlapi/Csql/DDLStmt/compositehashonalldatatypen +REL_PATH=. +if [ -s "$FILE" ] +then + REL_PATH=`pwd`/sqlapi/Csql/DDLStmt +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full ${REL_PATH}/compositehashonalldatatypen +else + $REL_PATH/compositehashonalldatatypen +fi + +if [ "$VALGRIND" = "true" ] +then + valgrind --tool=memcheck --leak-check=full $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +else + $CSQL_INSTALL_ROOT/bin/catalog -u root -p manager -l +fi + +echo "echo drop table t1;" >${REL_PATH}/drop_t1.sql +echo "drop table t1;" >>${REL_PATH}/drop_t1.sql + +$CSQL_INSTALL_ROOT/bin/csql -u root -p manager -s ${REL_PATH}/drop_t1.sql +rm -f ${REL_PATH}/drop_t1.sql +exit 0 diff --git a/test/sqlapi/Csql/DDLStmt/treeindexonalldatatype.c b/test/sqlapi/Csql/DDLStmt/treeindexonalldatatype.c new file mode 100644 index 00000000..e1a48674 --- /dev/null +++ b/test/sqlapi/Csql/DDLStmt/treeindexonalldatatype.c @@ -0,0 +1,162 @@ +/* + Create Tree indexes on the fields which are (TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,DATE,TIME). + CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP); + CREATE INDEX idxtiny ON t1(f1) TREE; + CREATE INDEX idxsmall ON t1(f2) TREE; + CREATE INDEX idxint ON t1(f3) TREE; + CREATE INDEX idxbig ON t1(f4) TREE; + CREATE INDEX idxchar ON t1(f5) TREE; + CREATE INDEX idxvarchar ON t(f6) TREE; + CREATE INDEX idxfloat ON t1(f7) TREE; + CREATE INDEX idxdouble ON t1(f8) TREE; + CREATE INDEX idxdate ON t(f9) TREE; + CREATE INDEX idxtime ON t1(f10) TREE; + CREATE INDEX idxtimestamp ON t1(f11) TREE; + All the indexes needs to be created +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + strcpy(statement,"CREATE TABLE t1(f1 TINYINT ,f2 SMALLINT ,f3 INT ,f4 BIGINT ,f5 CHAR(20) ,f6 VARCHAR(30) ,f7 FLOAT ,f8 DOUBLE ,f9 DATE ,f10 TIME ,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + printf("Table t1 Created\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxtiny ON t1(f1) TREE;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + printf("Tree Index Created on TINYINT field f1\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxsmall ON t1(f2) TREE;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + printf("Tree Index Created on SMALLINT field f2\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxint ON t1(f3) TREE;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + printf("Tree Index Created on INT field f3\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxbig ON t1(f4) TREE;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("Tree Index Created on BIGINT field f4\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxchar ON t1(f5) TREE;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("Tree Index Created on CHAR field f5\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxvarchar ON t1(f6) TREE;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 14; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 15; } + printf("Tree Index Created on VARCHAR field f6\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxfloat ON t1(f7) TREE;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 16; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 17; } + printf("Tree Index Created on FLOAT field f7\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxdouble ON t1(f8) TREE;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 18; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 19; } + printf("Tree Index Created on DOUBLE field f8\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxdate ON t1(f9) TREE;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 20; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 21; } + printf("Tree Index Created on DATE field f9\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxtime ON t1(f10) TREE;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 22; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 23; } + printf("Tree Index Created on TIME field f10\n"); + stmt->free(); + + strcpy(statement,"CREATE INDEX idxtimestamp ON t1(f11) TREE;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 24; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 25; } + printf("Tree Index Created on TIMESTAMP field f11\n"); + stmt->free(); + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 26; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 27; } + printf("\t TABLES\n"); + printf("\t--------\n"); + while(stmt->next() !=NULL) { + printf("\t%s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/Makefile b/test/sqlapi/Csql/DMLStmt/Makefile new file mode 100644 index 00000000..55b341d1 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/Makefile @@ -0,0 +1,131 @@ +OSNAME = $(shell uname -s) +PlatForm=notsupported +ifeq ($(OSNAME), SunOS) + CPlus = CC + CPlusFlags = -O2 -w $(COMPILER_FLAG) + SYSLIBS=-ldl -lnsl -lsocket -lposix4 + PlatForm=supported +endif +ifeq ($(OSNAME), Linux) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif +ifeq ($(OSNAME), FreeBSD) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif + + +INCL= -I$(CSQL_INSTALL_ROOT)/install/include -I../../../../include +ifeq ($(BUILDTYPE), MMDB) +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcsqlsqlnw +else +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcacheload -lcsqlsqlnw -lcsqlgw -lcsqlodbcadapter +endif + +TARGETS = \ + test001 test001n \ + test002 test002n \ + test003 test003n \ + test004 test004n \ + test005 test005n \ + test006 test006n \ + test007 test007n \ + test008 test008n \ + test009 test009n \ + test010 test010n \ + test011 test011n \ + test012 test012n \ + test013 test013n \ + test014 test014n \ + test015 test015n \ + test016 test016n \ + test017 test017n \ + test018 test018n + +ifeq ($(PlatForm), supported) +all: $(TARGETS) +else +all: + echo "CSQL is not supported on $(OSNAME) platform" +endif + +test001: alldmlonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test001n: alldmlonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002: insertonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002n: insertonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003: updrelationalonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003n: updrelationalonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004: updlogicalonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004n: updlogicalonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005: updrangeonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005n: updrangeonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006: updisnullisnotnullonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006n: updisnullisnotnullonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test007: deletealloperatoronalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test007n: deletealloperatoronalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test008: selectalloperatoronalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test008n: selectalloperatoronalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test009: pkeyfkeydml.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test009n: pkeyfkeydml.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test010: notnullonalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test010n: notnullonalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test011: defaultwithalldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test011n: defaultwithalldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test012: null_alldatatype.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test012n: null_alldatatype.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test013: autoincrement.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test013n: autoincrement.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test014: aggregate.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test014n: aggregate.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test015: dmloncopiedtable.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test015n: dmloncopiedtable.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test016: rollbackafterdml.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test016n: rollbackafterdml.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test017: stmtpre5000times.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test017n: stmtpre5000times.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test018: uniquekeyviolation.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test018n: uniquekeyviolation.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) + +clean: + rm -f *.o ${TARGETS} diff --git a/test/sqlapi/Csql/DMLStmt/TODO b/test/sqlapi/Csql/DMLStmt/TODO new file mode 100644 index 00000000..e69de29b diff --git a/test/sqlapi/Csql/DMLStmt/aggregate.c b/test/sqlapi/Csql/DMLStmt/aggregate.c new file mode 100644 index 00000000..78f05e6e --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/aggregate.c @@ -0,0 +1,205 @@ +/* + Aggregate test + CREATE TABLE t1(f1 INT,f2 BIGINT,f3 DOUBLE,f4 DATE); + Insert 5 records into t1. + INSERT INTO t1 VALUES(100,100,100,'2009-11-23'); + INSERT INTO t1 VALUES(200,200,200,'2009-11-25'); + INSERT INTO t1 VALUES(100,300,300,'2009-11-27'); + INSERT INTO t1 VALUES(200,400,400,'2009-11-29'); + INSERT INTO t1 VALUES(300,500,500,'2009-12-01'); + SELECT * FROM t1; + select count(f4) from t1; + select f1, sum(f2), avg(f3), max(f4) from t1 group by f1; + select f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having max(f4)>'2009/11/29'; + select f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having (max(f4) >'2009/11/26' and max(f4) < '2009-11-28') or avg(f3) > 400; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 INT,f2 BIGINT,f3 DOUBLE,f4 DATE);\n"); + strcpy(statement,"CREATE TABLE t1(f1 INT,f2 BIGINT,f3 DOUBLE,f4 DATE);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(100,100,100,'2009-11-23');\n"); + stmt->prepare("INSERT INTO t1 VALUES(100,100,100,'2009-11-23');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(200,200,200,'2009-11-25');\n"); + stmt->prepare("INSERT INTO t1 VALUES(200,200,200,'2009-11-25');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(100,300,300,'2009-11-27');\n"); + stmt->prepare("INSERT INTO t1 VALUES(100,300,300,'2009-11-27');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(200,400,400,'2009-11-29');\n"); + stmt->prepare("INSERT INTO t1 VALUES(200,400,400,'2009-11-29');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(300,500,500,'2009-12-01');\n"); + stmt->prepare("INSERT INTO t1 VALUES(300,500,500,'2009-12-01');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + + int f1var; + long long f2var; + double f3var; + Date f4var; + +//Fetching records after insert + printf("SELECT * FROM t1;\n"); + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 7; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 8; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(int)=NULL | "); + else printf("f1(int)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(bigint)=NULL | "); + else printf("f2(bigint)=%lld | ", f2var); + if(stmt->isFldNull(3)) printf("f3(double)=NULL | "); + else printf("f3(double)=%lf | ", f3var); + if(stmt->isFldNull(4)) printf("f4(date)=NULL | "); + else printf("f4(date)=%d-%d-%d | ", f4var.year(),f4var.month(),f4var.dayOfMonth()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//select count(f4) from t1; + int cnt=0; + strcpy(statement,"SELECT count(f4) FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 7; } + stmt->bindField(1,&cnt); + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("select count(f4) from t1 = %d\n",cnt); + } + stmt->free(); + rv = con->commit(); + +//select f1, sum(f2), avg(f3), max(f4) from t1 group by f1; + long long sum = 0; + double avg = 0; + Date max; + strcpy(statement,"select f1, sum(f2), avg(f3), max(f4) from t1 group by f1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&sum); + stmt->bindField(3,&avg); + stmt->bindField(4,&max); + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + printf("\nselect f1, sum(f2), avg(f3), max(f4) from t1 group by f1;\n"); + while(stmt->fetch() !=NULL) { + printf("f1=%d | ", f1var); + printf("sum(f2)=%lld | ", sum); + printf("avg(f3)=%lf | ", avg); + printf("max(f4)=%d-%d-%d | ", max.year(),max.month(),max.dayOfMonth()); + printf("\n"); + } + stmt->close(); + rv = con->commit(); + +//select f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having max(f4)>'2009/11/29'; + strcpy(statement,"select f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having max(f4)>'2009/11/29';"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&sum); + stmt->bindField(3,&avg); + stmt->bindField(4,&max); + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + printf("\nselect f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having max(f4)>'2009/11/29';\n"); + while(stmt->fetch() !=NULL) { + printf("f1=%d | ", f1var); + printf("sum(f2)=%lld | ", sum); + printf("avg(f3)=%lf | ", avg); + printf("max(f4)=%d-%d-%d | ", max.year(),max.month(),max.dayOfMonth()); + printf("\n"); + } + stmt->close(); + rv = con->commit(); + +//select f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having (max(f4) >'2009/11/26' and max(f4) < '2009-11-28') or avg(f3) > 400; + strcpy(statement,"select f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having (max(f4) >'2009/11/26' and max(f4) < '2009-11-28') or avg(f3) > 400;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&sum); + stmt->bindField(3,&avg); + stmt->bindField(4,&max); + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + printf("\nselect f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having (max(f4) >'2009/11/26' and max(f4) < '2009-11-28') or avg(f3) > 400;\n"); + while(stmt->fetch() !=NULL) { + printf("f1=%d | ", f1var); + printf("sum(f2)=%lld | ", sum); + printf("avg(f3)=%lf | ", avg); + printf("max(f4)=%d-%d-%d | ", max.year(),max.month(),max.dayOfMonth()); + printf("\n"); + } + stmt->close(); + rv = con->commit(); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/alldmlonalldatatype.c b/test/sqlapi/Csql/DMLStmt/alldmlonalldatatype.c new file mode 100644 index 00000000..593f4bdc --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/alldmlonalldatatype.c @@ -0,0 +1,267 @@ +/* + Test BASIC DML statement with no parameters (Insert, Update, Delete, Select for all datatypes). + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); + Insert 5 records into t1. + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); + INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,3333.33,'2003-03-03','03:03:03','2003-03-03 03:03:03'); + INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.44,4444.44,'2004-04-04','04:04:04','2004-04-04 04:04:04'); + INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.55,5555.55,'2005-05-05','05:05:05','2005-05-05 05:05:05'); + UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6='LAKSHYA_BANGALORE', f7=f7+100, f8=f8+10000,f9='2009-11-20', f10='12:01:01', f11='2009-11-20 12:01:01' WHERE f1<=3; + DELETE FROM t1 WHERE f1=12 OR f1=4; + SELECT * FROM t1; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n"); + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');\n"); + stmt->prepare("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,3333.33,'2003-03-03','03:03:03','2003-03-03 03:03:03');\n"); + stmt->prepare("INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,3333.33,'2003-03-03','03:03:03','2003-03-03 03:03:03');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.44,4444.44,'2004-04-04','04:04:04','2004-04-04 04:04:04');\n"); + stmt->prepare("INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.44,4444.44,'2004-04-04','04:04:04','2004-04-04 04:04:04');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.55,5555.55,'2005-05-05','05:05:05','2005-05-05 05:05:05');\n"); + stmt->prepare("INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.55,5555.55,'2005-05-05','05:05:05','2005-05-05 05:05:05');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + +//Updating records. + con->beginTrans(); + printf("UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6='LAKSHYA_BANGALORE', f7=f7+100, f8=f8+10000,f9='2009-11-20', f10='12:01:01', f11='2009-11-20 12:01:01' WHERE f1<=3;\n"); + strcpy(statement,"UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6='LAKSHYA_BANGALORE', f7=f7+100, f8=f8+10000,f9='2009-11-20', f10='12:01:01', f11='2009-11-20 12:01:01' WHERE f1<=3;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + con->commit(); + stmt->free(); + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Deleting Records. + con->beginTrans(); + printf("DELETE FROM t1 WHERE f1=12 OR f1=4;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f1=12 OR f1=4;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + con->commit(); + stmt->free(); + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/autoincrement.c b/test/sqlapi/Csql/DMLStmt/autoincrement.c new file mode 100644 index 00000000..48ed7c96 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/autoincrement.c @@ -0,0 +1,122 @@ +/* + Autoincrement test + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT AUTO_INCREMENT,f4 BIGINT); + Insert 5 records into t1. + INSERT INTO t1 VALUES(1, 10, 100, 1000); + INSERT INTO t1 VALUES(1, 10, NULL, 1000); + INSERT INTO t1 VALUES(1, 10, 200, 1000); + INSERT INTO t1 VALUES(1, 10, 150, 1000); + INSERT INTO t1 VALUES(1, 10, 100, 1000); it should be failed due to primary key viloation + SELECT * FROM t1; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT AUTO_INCREMENT,f4 BIGINT);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT AUTO_INCREMENT,f4 BIGINT);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1, 10, 100, 1000);\n"); + stmt->prepare("INSERT INTO t1 VALUES(1, 10, 100, 1000);"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(1, 10, NULL, 1000);\n"); + stmt->prepare("INSERT INTO t1 VALUES(1, 10, NULL, 1000);"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(1, 10, 200, 1000);\n"); + stmt->prepare("INSERT INTO t1 VALUES(1, 10, 200, 1000);"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(1, 10, 150, 1000);\n"); + stmt->prepare("INSERT INTO t1 VALUES(1, 10, 150, 1000);"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(1, 10, 100, 1000);\n"); + stmt->prepare("INSERT INTO t1 VALUES(1, 10, 100, 1000);"); + rv=stmt->execute(rows); + if(rv=OK) { delete stmt; con->disconnect(); delete con; return 6; } + con->commit(); + stmt->free(); + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 7; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 8; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%i | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/common.h b/test/sqlapi/Csql/DMLStmt/common.h new file mode 100644 index 00000000..f1ab199a --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/common.h @@ -0,0 +1,37 @@ +#include +#include +#include + +AbsSqlConnection *createConnection() +{ +#ifdef NETWORK + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetwork); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKADAPTER + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkAdapter); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKGATEWAY + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkGateway); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#else + AbsSqlConnection *con = SqlFactory::createConnection(CSql); +#endif + return con; +} + +AbsSqlStatement *createStatement() +{ +#ifdef NETWORK + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetwork); +#elif defined NETWORKADAPTER + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkAdapter); +#elif defined NETWORKGATEWAY + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkGateway); +#else + AbsSqlStatement *stmt = SqlFactory::createStatement(CSql); +#endif + return stmt; +} diff --git a/test/sqlapi/Csql/DMLStmt/defaultwithalldatatype.c b/test/sqlapi/Csql/DMLStmt/defaultwithalldatatype.c new file mode 100644 index 00000000..1296b010 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/defaultwithalldatatype.c @@ -0,0 +1,194 @@ +/* + Default value testing with all datatypes.(TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,FLOAT,DOUBLE,DATE,TIME,TIMESTAMP)) + CREATE TABLE t1(f1 TINYINT DEFAULT 1,f2 SMALLINT DEFAULT 11,f3 INT DEFAULT 111,f4 BIGINT DEFAULT 1111,f5 CHAR(20) DEFAULT 'CSQL1',f6 VARCHAR(30) DEFAULT 'Lakshya1',f7 FLOAT DEFAULT 11.11,f8 DOUBLE DEFAULT 1111.11,f9 DATE DEFAULT '2001/01/01',f10 TIME DEFAULT '01:01:01',f11 TIMESTAMP DEFAULT '2001/01/01 01:01:01'); + Insert a record say (insert into t1 (f1) values(1); It should insert default values in all other fields. + Update all the inserted default field values to null. it should update. + Insert null values in all the fields , it should accept null values. + It should pass. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT DEFAULT 1,f2 SMALLINT DEFAULT 11,f3 INT DEFAULT 111,f4 BIGINT DEFAULT 1111,f5 CHAR(20) DEFAULT 'CSQL1',f6 VARCHAR(30) DEFAULT 'Lakshya1',f7 FLOAT DEFAULT 11.11,f8 DOUBLE DEFAULT 1111.11,f9 DATE DEFAULT '2001-01-01',f10 TIME DEFAULT '01:01:01',f11 TIMESTAMP DEFAULT '2001-01-01 01:01:01');\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT DEFAULT 1,f2 SMALLINT DEFAULT 11,f3 INT DEFAULT 111,f4 BIGINT DEFAULT 1111,f5 CHAR(20) DEFAULT 'CSQL1',f6 VARCHAR(30) DEFAULT 'Lakshya1',f7 FLOAT DEFAULT 11.11,f8 DOUBLE DEFAULT 1111.11,f9 DATE DEFAULT '2001-01-01',f10 TIME DEFAULT '01:01:01',f11 TIMESTAMP DEFAULT '2001-01-01 01:01:01');"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1(f1) VALUES(1);\n"); + stmt->prepare("INSERT INTO t1(f1) VALUES(1);"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n"); + stmt->prepare("INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n"); + stmt->prepare("INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);"); + stmt->execute(rows); + con->commit(); + stmt->free(); + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); +//Updating Default fields to NULL + con->beginTrans(); + strcpy(statement,"UPDATE t1 SET f1=NULL,f2=NULL,f3=NULL,f4=NULL,f5=NULL,f6=NULL,f7=NULL,f8=NULL,f9=NULL,f10=NULL,f11=NULL where f1=1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + printf("Prepared\n"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + printf("Executed\n"); + con->commit(); + stmt->free(); + +//Fetching records after Update + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 10; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 11; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/deletealloperatoronalldatatype.c b/test/sqlapi/Csql/DMLStmt/deletealloperatoronalldatatype.c new file mode 100644 index 00000000..4c36aedd --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/deletealloperatoronalldatatype.c @@ -0,0 +1,268 @@ +/* + Test Update conditionally using relational operators on all datatypes. + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); + Insert 5 records into t1. + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02'); + INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03'); + INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04'); + INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05'); + INSERT INTO t1 VALUES(6,66,666,6666,'CSQL6','LAKSHYA6',66.00,6666.00,'2006-06-06','06:06:06','2006-06-06 06:06:06'); + INSERT INTO t1 VALUES(7,77,777,7777,'CSQL7','LAKSHYA7',77.00,7777.00,'2007-07-07','07:07:07','2007-07-07 07:07:07'); + INSERT INTO t1 VALUES(8,88,888,8888,'CSQL8','LAKSHYA8',88.00,8888.00,'2008-08-08','08:08:08','2008-08-08 08:08:08'); + INSERT INTO t1 VALUES(9,99,999,9999,'CSQL9','LAKSHYA9',99.00,9999.00,'2009-09-09','09:09:09','2009-09-09 09:09:09'); + INSERT INTO t1 VALUES(10,100,1000,10000,'CSQL10',NULL,100.00,10000.00,'2010-10-10','10:10:10','2010-10-10 10:10:10'); + + DELETE FROM t1 WHERE f3=111; + DELETE FROM t1 WHERE f4<3333; + DELETE FROM t1 WHERE f6<='LAKSHYA3'; + DELETE FROM t1 WHERE f9>'2008-08-08' and f10 <'10:10:10'; + + DELETE FROM t1 WHERE f3 between 100 and 500; + DELETE FROM t1 WHERE f6 like '%AKSHYA5'; + DELETE FROM t1 WHERE f11 in ('2005-05-05 05:05:05','2006-06-06 06:06:06'); + + DELETE FROM t1 WHERE f3 is NOT NULL and f4=7777; + + DELETE FROM t1 WHERE f6 is NULL or not(f4=8888); + +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(6,66,666,6666,'CSQL6','LAKSHYA6',66.00,6666.00,'2006-06-06','06:06:06','2006-06-06 06:06:06');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(7,77,777,7777,'CSQL7','LAKSHYA7',77.00,7777.00,'2007-07-07','07:07:07','2007-07-07 07:07:07');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(8,88,888,8888,'CSQL8','LAKSHYA8',88.00,8888.00,'2008-08-08','08:08:08','2008-08-08 08:08:08');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(9,99,999,9999,'CSQL9','LAKSHYA9',99.00,9999.00,'2009-09-09','09:09:09','2009-09-09 09:09:09');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(10,100,1000,10000,'CSQL10',NULL,100.00,10000.00,'2010-10-10','10:10:10','2010-10-10 10:10:10');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + printf("SELECT * FROM t1;\n"); + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(=NULL | "); + else printf("f2(=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Updating records. + con->beginTrans(); + printf("DELETE FROM t1 WHERE f3=111;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f3=111;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("DELETE FROM t1 WHERE f4<3333;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f4<3333;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("DELETE FROM t1 WHERE f6<='LAKSHYA3';\n"); + strcpy(statement,"DELETE FROM t1 WHERE f6<='LAKSHYA3';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("DELETE FROM t1 WHERE f9>'2008-08-08' and f10 <'10:10:10';\n"); + strcpy(statement,"DELETE FROM t1 WHERE f9>'2008-08-08' and f10 <'10:10:10';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("DELETE FROM t1 WHERE f3 between 100 and 500;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f3 between 100 and 500;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("DELETE FROM t1 WHERE f6 like '%AKSHYA5';\n"); + strcpy(statement,"DELETE FROM t1 WHERE f6 like '%AKSHYA5';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("DELETE FROM t1 WHERE f11 in ('2005-05-05 05:05:05','2006-06-06 06:06:06');\n"); + strcpy(statement,"DELETE FROM t1 WHERE f11 in ('2005-05-05 05:05:05','2006-06-06 06:06:06');"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("DELETE FROM t1 WHERE f3 is NOT NULL and f4=7777;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f3 is NOT NULL and f4=7777;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("DELETE FROM t1 WHERE f6 is NULL or not(f4=8888);\n"); + strcpy(statement,"DELETE FROM t1 WHERE f6 is NULL or not(f4=8888);"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + stmt->free(); + rv = con->commit(); + +//Fetching records + printf("SELECT * FROM t1;\n"); + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 9; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(=NULL | "); + else printf("f2(=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/dmloncopiedtable.c b/test/sqlapi/Csql/DMLStmt/dmloncopiedtable.c new file mode 100644 index 00000000..4f5a3709 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/dmloncopiedtable.c @@ -0,0 +1,260 @@ +/* + Basic DML on copied table + CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); + create table t1 as select * from t2; + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); + UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6=f6+100, f7=f7+10000,f8='2009-11-20', f9='12:01:01', f10='2009-11-20 12:01:01' WHERE f1<=3; + DELETE FROM t1 WHERE f1=12 OR f1=4; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +//copy table + printf("CREATE TABLE t1 AS SELECT * FROM t2;\n"); + strcpy(statement,"CREATE TABLE t1 AS SELECT * FROM t2;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n"); + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');\n"); + stmt->prepare("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + float f6var; + double f7var; + Date f8var; + Time f9var; + TimeStamp f10var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 9; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(float)=NULL | "); + else printf("f6(float)=%f | ", f6var); + if(stmt->isFldNull(7)) printf("f7(double)=NULL | "); + else printf("f7(double)=%lf | ", f7var); + if(stmt->isFldNull(8)) printf("f8(date)=NULL | "); + else printf("f8(date)=%02d-%02d-%02d | ", f8var.year(),f8var.month(),f8var.dayOfMonth()); + if(stmt->isFldNull(9)) printf("f9(time)=NULL | "); + else printf("f9(time)=%02d:%02d:%02d | ", f9var.hours(),f9var.minutes(),f9var.seconds()); + if(stmt->isFldNull(10)) printf("f10(timestamp)=NULL | "); + else printf("f10(timestamp)=%d-%d-%d %d:%d:%d | ", f10var.year(),f10var.month(),f10var.dayOfMonth(),f10var.hours(),f10var.minutes(),f10var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + +//Updating records. + con->beginTrans(); + printf("UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6=f6+100, f7=f7+10000,f8='2009-11-20', f9='12:01:01', f10='2009-11-20 12:01:01' WHERE f1<=3;\n"); + strcpy(statement,"UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6=f6+100, f7=f7+10000,f8='2009-11-20', f9='12:01:01', f10='2009-11-20 12:01:01' WHERE f1<=3;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + con->commit(); + stmt->free(); + +//Fetching records after update + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 12; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 13; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(float)=NULL | "); + else printf("f6(float)=%f | ", f6var); + if(stmt->isFldNull(7)) printf("f7(double)=NULL | "); + else printf("f7(double)=%lf | ", f7var); + if(stmt->isFldNull(8)) printf("f8(date)=NULL | "); + else printf("f8(date)=%02d-%02d-%02d | ", f8var.year(),f8var.month(),f8var.dayOfMonth()); + if(stmt->isFldNull(9)) printf("f9(time)=NULL | "); + else printf("f9(time)=%02d:%02d:%02d | ", f9var.hours(),f9var.minutes(),f9var.seconds()); + if(stmt->isFldNull(10)) printf("f10(timestamp)=NULL | "); + else printf("f10(timestamp)=%d-%d-%d %d:%d:%d | ", f10var.year(),f10var.month(),f10var.dayOfMonth(),f10var.hours(),f10var.minutes(),f10var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + +//Deleting Records. + con->beginTrans(); + printf("DELETE FROM t1 WHERE f1=12 OR f1=4;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f1=12 OR f1=4;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 14; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 15; } + con->commit(); + stmt->free(); + +//Fetching records after delete + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 16; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 17; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(float)=NULL | "); + else printf("f6(float)=%f | ", f6var); + if(stmt->isFldNull(7)) printf("f7(double)=NULL | "); + else printf("f7(double)=%lf | ", f7var); + if(stmt->isFldNull(8)) printf("f8(date)=NULL | "); + else printf("f8(date)=%02d-%02d-%02d | ", f8var.year(),f8var.month(),f8var.dayOfMonth()); + if(stmt->isFldNull(9)) printf("f9(time)=NULL | "); + else printf("f9(time)=%02d:%02d:%02d | ", f9var.hours(),f9var.minutes(),f9var.seconds()); + if(stmt->isFldNull(10)) printf("f10(timestamp)=NULL | "); + else printf("f10(timestamp)=%d-%d-%d %d:%d:%d | ", f10var.year(),f10var.month(),f10var.dayOfMonth(),f10var.hours(),f10var.minutes(),f10var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 18; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 19; } + printf("Table t1 dropped\n"); + strcpy(statement,"DROP TABLE t2;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 20; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 21; } + printf("Table t2 dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/exp.test001 b/test/sqlapi/Csql/DMLStmt/exp.test001 new file mode 100644 index 00000000..55646073 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test001 @@ -0,0 +1,28 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,3333.33,'2003-03-03','03:03:03','2003-03-03 03:03:03'); +INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.44,4444.44,'2004-04-04','04:04:04','2004-04-04 04:04:04'); +INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.55,5555.55,'2005-05-05','05:05:05','2005-05-05 05:05:05'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(varchar)=LAKSHYA1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(varchar)=LAKSHYA2 | f7(float)=22.219999 | f8(double)=2222.220000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)=CSQL3 | f6(varchar)=LAKSHYA3 | f7(float)=33.330002 | f8(double)=3333.330000 | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=2003-3-3 3:3:3 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)=CSQL4 | f6(varchar)=LAKSHYA4 | f7(float)=44.439999 | f8(double)=4444.440000 | f9(date)=2004-04-04 | f10(time)=04:04:04 | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)=CSQL5 | f6(varchar)=LAKSHYA5 | f7(float)=55.549999 | f8(double)=5555.550000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=2005-5-5 5:5:5 | +5 rows selected +UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6='LAKSHYA_BANGALORE', f7=f7+100, f8=f8+10000,f9='2009-11-20', f10='12:01:01', f11='2009-11-20 12:01:01' WHERE f1<=3; +f1(tinyint)=11 | f2(smallint)=111 | f3(int)=1111 | f4(bigint)=11111 | f5(char)=CSQLMMDB | f6(varchar)=LAKSHYA_BANGALORE | f7(float)=111.110001 | f8(double)=11111.110000 | f9(date)=2009-11-20 | f10(time)=12:01:01 | f11(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=12 | f2(smallint)=122 | f3(int)=1222 | f4(bigint)=12222 | f5(char)=CSQLMMDB | f6(varchar)=LAKSHYA_BANGALORE | f7(float)=122.220001 | f8(double)=12222.220000 | f9(date)=2009-11-20 | f10(time)=12:01:01 | f11(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=13 | f2(smallint)=133 | f3(int)=1333 | f4(bigint)=13333 | f5(char)=CSQLMMDB | f6(varchar)=LAKSHYA_BANGALORE | f7(float)=133.330002 | f8(double)=13333.330000 | f9(date)=2009-11-20 | f10(time)=12:01:01 | f11(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)=CSQL4 | f6(varchar)=LAKSHYA4 | f7(float)=44.439999 | f8(double)=4444.440000 | f9(date)=2004-04-04 | f10(time)=04:04:04 | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)=CSQL5 | f6(varchar)=LAKSHYA5 | f7(float)=55.549999 | f8(double)=5555.550000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=2005-5-5 5:5:5 | +5 rows selected +DELETE FROM t1 WHERE f1=12 OR f1=4; +f1(tinyint)=11 | f2(smallint)=111 | f3(int)=1111 | f4(bigint)=11111 | f5(char)=CSQLMMDB | f6(varchar)=LAKSHYA_BANGALORE | f7(float)=111.110001 | f8(double)=11111.110000 | f9(date)=2009-11-20 | f10(time)=12:01:01 | f11(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=13 | f2(smallint)=133 | f3(int)=1333 | f4(bigint)=13333 | f5(char)=CSQLMMDB | f6(varchar)=LAKSHYA_BANGALORE | f7(float)=133.330002 | f8(double)=13333.330000 | f9(date)=2009-11-20 | f10(time)=12:01:01 | f11(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)=CSQL5 | f6(varchar)=LAKSHYA5 | f7(float)=55.549999 | f8(double)=5555.550000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=2005-5-5 5:5:5 | +3 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test001n b/test/sqlapi/Csql/DMLStmt/exp.test001n new file mode 100644 index 00000000..a524bb53 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test001n @@ -0,0 +1,28 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,3333.33,'2003-03-03','03:03:03','2003-03-03 03:03:03'); +INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.44,4444.44,'2004-04-04','04:04:04','2004-04-04 04:04:04'); +INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.55,5555.55,'2005-05-05','05:05:05','2005-05-05 05:05:05'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)= | f6(varchar)=LAKSHYA1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)= | f6(varchar)=LAKSHYA2 | f7(float)=22.219999 | f8(double)=2222.220000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)= | f6(varchar)=LAKSHYA3 | f7(float)=33.330002 | f8(double)=3333.330000 | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=2003-3-3 3:3:3 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)= | f6(varchar)=LAKSHYA4 | f7(float)=44.439999 | f8(double)=4444.440000 | f9(date)=2004-04-04 | f10(time)=04:04:04 | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)= | f6(varchar)=LAKSHYA5 | f7(float)=55.549999 | f8(double)=5555.550000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=2005-5-5 5:5:5 | +5 rows selected +UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6='LAKSHYA_BANGALORE', f7=f7+100, f8=f8+10000,f9='2009-11-20', f10='12:01:01', f11='2009-11-20 12:01:01' WHERE f1<=3; +f1(tinyint)=11 | f2(smallint)=111 | f3(int)=1111 | f4(bigint)=11111 | f5(char)= | f6(varchar)=LAKSHYA_BANGALORE | f7(float)=111.110001 | f8(double)=11111.110000 | f9(date)=2009-11-20 | f10(time)=12:01:01 | f11(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=12 | f2(smallint)=122 | f3(int)=1222 | f4(bigint)=12222 | f5(char)= | f6(varchar)=LAKSHYA_BANGALORE | f7(float)=122.220001 | f8(double)=12222.220000 | f9(date)=2009-11-20 | f10(time)=12:01:01 | f11(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=13 | f2(smallint)=133 | f3(int)=1333 | f4(bigint)=13333 | f5(char)= | f6(varchar)=LAKSHYA_BANGALORE | f7(float)=133.330002 | f8(double)=13333.330000 | f9(date)=2009-11-20 | f10(time)=12:01:01 | f11(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)= | f6(varchar)=LAKSHYA4 | f7(float)=44.439999 | f8(double)=4444.440000 | f9(date)=2004-04-04 | f10(time)=04:04:04 | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)= | f6(varchar)=LAKSHYA5 | f7(float)=55.549999 | f8(double)=5555.550000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=2005-5-5 5:5:5 | +5 rows selected +DELETE FROM t1 WHERE f1=12 OR f1=4; +f1(tinyint)=11 | f2(smallint)=111 | f3(int)=1111 | f4(bigint)=11111 | f5(char)= | f6(varchar)=LAKSHYA_BANGALORE | f7(float)=111.110001 | f8(double)=11111.110000 | f9(date)=2009-11-20 | f10(time)=12:01:01 | f11(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=13 | f2(smallint)=133 | f3(int)=1333 | f4(bigint)=13333 | f5(char)= | f6(varchar)=LAKSHYA_BANGALORE | f7(float)=133.330002 | f8(double)=13333.330000 | f9(date)=2009-11-20 | f10(time)=12:01:01 | f11(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)= | f6(varchar)=LAKSHYA5 | f7(float)=55.549999 | f8(double)=5555.550000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=2005-5-5 5:5:5 | +3 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test002 b/test/sqlapi/Csql/DMLStmt/exp.test002 new file mode 100644 index 00000000..e5c9bead --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test002 @@ -0,0 +1,12 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11) VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10) VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,3333.33,'2003-03-03','03:03:03'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(varchar)=LAKSHYA1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(varchar)=LAKSHYA2 | f7(float)=22.219999 | f8(double)=2222.220000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)=CSQL3 | f6(varchar)=LAKSHYA3 | f7(float)=33.330002 | f8(double)=3333.330000 | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=NULL | +3 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test002n b/test/sqlapi/Csql/DMLStmt/exp.test002n new file mode 100644 index 00000000..73723a48 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test002n @@ -0,0 +1,12 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11) VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10) VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,3333.33,'2003-03-03','03:03:03'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)= | f6(varchar)=LAKSHYA1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)= | f6(varchar)=LAKSHYA2 | f7(float)=22.219999 | f8(double)=2222.220000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)= | f6(varchar)=LAKSHYA3 | f7(float)=33.330002 | f8(double)=3333.330000 | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=NULL | +3 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test003 b/test/sqlapi/Csql/DMLStmt/exp.test003 new file mode 100644 index 00000000..e1bcff73 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test003 @@ -0,0 +1,99 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +f1=1 | f2(=11 | f3=111 | f4=1111 | f5= | f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=2 | f2(=22 | f3=222 | f4=2222 | f5= | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +f1=3 | f2(=33 | f3=333 | f4=3333 | f5= | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=4 | f2(=44 | f3=444 | f4=4444 | f5= | f6=LAKSHYA4 | f7=44.000000 | f8=4444.000000 | f9=2004-04-04 | f10=04:04:04 | f11=2004-4-4 4:4:4 | +f1=5 | f2(=55 | f3=555 | f4=5555 | f5= | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2(=66 | f3=666 | f4=6666 | f5= | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5= | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=8 | f2(=88 | f3=888 | f4=8888 | f5= | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +f1=9 | f2(=99 | f3=999 | f4=9999 | f5= | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +9 rows selected +UPDATE t1 SET f1=10, f2=100, f3=1000, f4=10000, f5='CSQLMMDB', f6='LAKSHYA_BANGALORE', f7=100, f8=10000,f9='2009-01-10', f10='01:01:10', f11='2009-01-10 01:01:10' WHERE f1=1; +UPDATE t1 SET f1=20, f2=200, f3=2000, f4=20000, f5='CSQLMMDB2', f6='LAKSHYA_BANGALORE2', f7=200, f8=20000,f9='2009-01-11', f10='01:01:11', f11='2009-01-11 01:01:11' WHERE f2=100; +UPDATE t1 SET f1=30, f2=300, f3=3000, f4=30000, f5='CSQLMMDB3', f6='LAKSHYA_BANGALORE3', f7=300, f8=30000,f9='2009-01-12', f10='01:01:12', f11='2009-01-12 01:01:12' WHERE f3=2000; +UPDATE t1 SET f1=40, f2=400, f3=4000, f4=40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=400, f8=40000,f9='2009-01-13', f10='01:01:13', f11='2009-01-13 01:01:13' WHERE f4=30000; +UPDATE t1 SET f1=50, f2=500, f3=5000, f4=50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=500, f8=50000,f9='2009-01-14', f10='01:01:14', f11='2009-01-14 01:01:14' WHERE f5='CSQLMMDB4'; +UPDATE t1 SET f1=60, f2=600, f3=6000, f4=60000, f5='CSQLMMDB6', f6='LAKSHYA_BANGALORE6', f7=600, f8=60000,f9='2009-01-16', f10='01:01:16', f11='2009-01-16 01:01:16' WHERE f6='LAKSHYA_BANGALORE5'; +UPDATE t1 SET f1=70, f2=700, f3=7000, f4=70000, f5='CSQLMMDB7', f6='LAKSHYA_BANGALORE7', f7=700, f8=70000,f9='2009-01-17', f10='01:01:17', f11='2009-01-17 01:01:17' WHERE f7=600; +UPDATE t1 SET f1=80, f2=800, f3=8000, f4=80000, f5='CSQLMMDB8', f6='LAKSHYA_BANGALORE8', f7=800, f8=80000,f9='2009-01-18', f10='01:01:18', f11='2009-01-18 01:01:18' WHERE f8=70000; +UPDATE t1 SET f1=90, f2=900, f3=9000, f4=90000, f5='CSQLMMDB9', f6='LAKSHYA_BANGALORE9', f7=900, f8=90000,f9='2009-01-19', f10='01:01:19', f11='2009-01-19 01:01:19' WHERE f9='2009-01-18'; +UPDATE t1 SET f1=100, f2=1000, f3=10000, f4=100000, f5='CSQLMMDB10', f6='LAKSHYA_BANGALORE10', f7=1000, f8=100000,f9='2009-01-20', f10='01:01:20', f11='2009-01-20 01:01:20' WHERE f10='01:01:19'; +UPDATE t1 SET f1=110, f2=1100, f3=11000, f4=110000, f5='CSQLMMDB11', f6='LAKSHYA_BANGALORE11', f7=1100, f8=110000,f9='2009-09-09', f10='09:09:09', f11='2009-09-09 09:09:09' WHERE f11='2009-01-20 01:01:20'; +f1=110 | f2(=1100 | f3=11000 | f4=110000 | f5= | f6=LAKSHYA_BANGALORE11 | f7=1100.000000 | f8=110000.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +f1=2 | f2(=22 | f3=222 | f4=2222 | f5= | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +f1=3 | f2(=33 | f3=333 | f4=3333 | f5= | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=4 | f2(=44 | f3=444 | f4=4444 | f5= | f6=LAKSHYA4 | f7=44.000000 | f8=4444.000000 | f9=2004-04-04 | f10=04:04:04 | f11=2004-4-4 4:4:4 | +f1=5 | f2(=55 | f3=555 | f4=5555 | f5= | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2(=66 | f3=666 | f4=6666 | f5= | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5= | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=8 | f2(=88 | f3=888 | f4=8888 | f5= | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +f1=9 | f2(=99 | f3=999 | f4=9999 | f5= | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +9 rows selected +UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f1<3; +UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2<3; +UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f3<3; +UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4<3; +UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f5<'CSQL3'; +UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6<'LAKSHYA3'; + UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f7<3; +UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8<3; +UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f9<'2003/03/03'; +UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10<'03:03:03'; +UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f11<'2003/03/03 03:03:03'; +f1=110 | f2(=1100 | f3=11000 | f4=110000 | f5= | f6=LAKSHYA_BANGALORE11 | f7=1100.000000 | f8=110000.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +f1=1 | f2(=1 | f3=1 | f4=1 | f5= | f6=LAKSHYA1 | f7=1.000000 | f8=1.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=3 | f2(=33 | f3=333 | f4=3333 | f5= | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=4 | f2(=44 | f3=444 | f4=4444 | f5= | f6=LAKSHYA4 | f7=44.000000 | f8=4444.000000 | f9=2004-04-04 | f10=04:04:04 | f11=2004-4-4 4:4:4 | +f1=5 | f2(=55 | f3=555 | f4=5555 | f5= | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2(=66 | f3=666 | f4=6666 | f5= | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5= | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=8 | f2(=88 | f3=888 | f4=8888 | f5= | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +f1=9 | f2(=99 | f3=999 | f4=9999 | f5= | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +9 rows selected +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f1<=4; +UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f2<=4; +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f3<=4; +UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f4<=4; +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f5<='CSQL4'; +UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f6<='LAKSHYA4'; +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f7<=4; +UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f8<=4; +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f9<='2004-04-04'; +UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f10<='04:04:04'; +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f11<='2004-04-04 04:04:04'; +f1=110 | f2(=1100 | f3=11000 | f4=110000 | f5=CSQL1 | f6=LAKSHYA_BANGALORE11 | f7=1100.000000 | f8=110000.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +f1=3 | f2(=3 | f3=3 | f4=3 | f5=CSQL2 | f6=LAKSHYA3 | f7=3.000000 | f8=3.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=3 | f2(=3 | f3=3 | f4=3 | f5=CSQL3 | f6=LAKSHYA3 | f7=3.000000 | f8=3.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=3 | f2(=3 | f3=3 | f4=3 | f5=CSQL4 | f6=LAKSHYA3 | f7=3.000000 | f8=3.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=5 | f2(=55 | f3=555 | f4=5555 | f5=CSQL5 | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2(=66 | f3=666 | f4=6666 | f5=CSQL6 | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5=CSQL7 | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=8 | f2(=88 | f3=888 | f4=8888 | f5=CSQL8 | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +f1=9 | f2(=99 | f3=999 | f4=9999 | f5=CSQL9 | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +9 rows selected +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f1!=7; +UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f2!=77 +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f3!=777; +UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f4!=7777; +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f5!='CSQL7'; +UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f6!='LAKSHYA7'; +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f7!=77.000000; +UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f8!=7777.000000; +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f9!='2007/7/7'; +UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f10!='07:07:07'; +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f11!='2007/07/07 07:07:07'; +f1=70 | f2(=70 | f3=70 | f4=70 | f5=CSQL70 | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5=CSQL70 | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5=CSQL70 | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5=CSQL70 | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5=CSQL70 | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5=CSQL70 | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5=CSQL70 | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5=CSQL70 | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5=CSQL70 | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +9 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test003n b/test/sqlapi/Csql/DMLStmt/exp.test003n new file mode 100644 index 00000000..609d01f5 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test003n @@ -0,0 +1,99 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +f1=1 | f2(=11 | f3=111 | f4=1111 | f5= | f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=2 | f2(=22 | f3=222 | f4=2222 | f5= | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +f1=3 | f2(=33 | f3=333 | f4=3333 | f5= | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=4 | f2(=44 | f3=444 | f4=4444 | f5= | f6=LAKSHYA4 | f7=44.000000 | f8=4444.000000 | f9=2004-04-04 | f10=04:04:04 | f11=2004-4-4 4:4:4 | +f1=5 | f2(=55 | f3=555 | f4=5555 | f5= | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2(=66 | f3=666 | f4=6666 | f5= | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5= | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=8 | f2(=88 | f3=888 | f4=8888 | f5= | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +f1=9 | f2(=99 | f3=999 | f4=9999 | f5= | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +9 rows selected +UPDATE t1 SET f1=10, f2=100, f3=1000, f4=10000, f5='CSQLMMDB', f6='LAKSHYA_BANGALORE', f7=100, f8=10000,f9='2009-01-10', f10='01:01:10', f11='2009-01-10 01:01:10' WHERE f1=1; +UPDATE t1 SET f1=20, f2=200, f3=2000, f4=20000, f5='CSQLMMDB2', f6='LAKSHYA_BANGALORE2', f7=200, f8=20000,f9='2009-01-11', f10='01:01:11', f11='2009-01-11 01:01:11' WHERE f2=100; +UPDATE t1 SET f1=30, f2=300, f3=3000, f4=30000, f5='CSQLMMDB3', f6='LAKSHYA_BANGALORE3', f7=300, f8=30000,f9='2009-01-12', f10='01:01:12', f11='2009-01-12 01:01:12' WHERE f3=2000; +UPDATE t1 SET f1=40, f2=400, f3=4000, f4=40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=400, f8=40000,f9='2009-01-13', f10='01:01:13', f11='2009-01-13 01:01:13' WHERE f4=30000; +UPDATE t1 SET f1=50, f2=500, f3=5000, f4=50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=500, f8=50000,f9='2009-01-14', f10='01:01:14', f11='2009-01-14 01:01:14' WHERE f5='CSQLMMDB4'; +UPDATE t1 SET f1=60, f2=600, f3=6000, f4=60000, f5='CSQLMMDB6', f6='LAKSHYA_BANGALORE6', f7=600, f8=60000,f9='2009-01-16', f10='01:01:16', f11='2009-01-16 01:01:16' WHERE f6='LAKSHYA_BANGALORE5'; +UPDATE t1 SET f1=70, f2=700, f3=7000, f4=70000, f5='CSQLMMDB7', f6='LAKSHYA_BANGALORE7', f7=700, f8=70000,f9='2009-01-17', f10='01:01:17', f11='2009-01-17 01:01:17' WHERE f7=600; +UPDATE t1 SET f1=80, f2=800, f3=8000, f4=80000, f5='CSQLMMDB8', f6='LAKSHYA_BANGALORE8', f7=800, f8=80000,f9='2009-01-18', f10='01:01:18', f11='2009-01-18 01:01:18' WHERE f8=70000; +UPDATE t1 SET f1=90, f2=900, f3=9000, f4=90000, f5='CSQLMMDB9', f6='LAKSHYA_BANGALORE9', f7=900, f8=90000,f9='2009-01-19', f10='01:01:19', f11='2009-01-19 01:01:19' WHERE f9='2009-01-18'; +UPDATE t1 SET f1=100, f2=1000, f3=10000, f4=100000, f5='CSQLMMDB10', f6='LAKSHYA_BANGALORE10', f7=1000, f8=100000,f9='2009-01-20', f10='01:01:20', f11='2009-01-20 01:01:20' WHERE f10='01:01:19'; +UPDATE t1 SET f1=110, f2=1100, f3=11000, f4=110000, f5='CSQLMMDB11', f6='LAKSHYA_BANGALORE11', f7=1100, f8=110000,f9='2009-09-09', f10='09:09:09', f11='2009-09-09 09:09:09' WHERE f11='2009-01-20 01:01:20'; +f1=110 | f2(=1100 | f3=11000 | f4=110000 | f5= | f6=LAKSHYA_BANGALORE11 | f7=1100.000000 | f8=110000.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +f1=2 | f2(=22 | f3=222 | f4=2222 | f5= | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +f1=3 | f2(=33 | f3=333 | f4=3333 | f5= | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=4 | f2(=44 | f3=444 | f4=4444 | f5= | f6=LAKSHYA4 | f7=44.000000 | f8=4444.000000 | f9=2004-04-04 | f10=04:04:04 | f11=2004-4-4 4:4:4 | +f1=5 | f2(=55 | f3=555 | f4=5555 | f5= | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2(=66 | f3=666 | f4=6666 | f5= | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5= | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=8 | f2(=88 | f3=888 | f4=8888 | f5= | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +f1=9 | f2(=99 | f3=999 | f4=9999 | f5= | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +9 rows selected +UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f1<3; +UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2<3; +UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f3<3; +UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4<3; +UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f5<'CSQL3'; +UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6<'LAKSHYA3'; + UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f7<3; +UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8<3; +UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f9<'2003/03/03'; +UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10<'03:03:03'; +UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f11<'2003/03/03 03:03:03'; +f1=110 | f2(=1100 | f3=11000 | f4=110000 | f5= | f6=LAKSHYA_BANGALORE11 | f7=1100.000000 | f8=110000.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +f1=1 | f2(=1 | f3=1 | f4=1 | f5= | f6=LAKSHYA1 | f7=1.000000 | f8=1.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=3 | f2(=33 | f3=333 | f4=3333 | f5= | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=4 | f2(=44 | f3=444 | f4=4444 | f5= | f6=LAKSHYA4 | f7=44.000000 | f8=4444.000000 | f9=2004-04-04 | f10=04:04:04 | f11=2004-4-4 4:4:4 | +f1=5 | f2(=55 | f3=555 | f4=5555 | f5= | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2(=66 | f3=666 | f4=6666 | f5= | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5= | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=8 | f2(=88 | f3=888 | f4=8888 | f5= | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +f1=9 | f2(=99 | f3=999 | f4=9999 | f5= | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +9 rows selected +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f1<=4; +UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f2<=4; +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f3<=4; +UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f4<=4; +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f5<='CSQL4'; +UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f6<='LAKSHYA4'; +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f7<=4; +UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f8<=4; +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f9<='2004-04-04'; +UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f10<='04:04:04'; +UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f11<='2004-04-04 04:04:04'; +f1=110 | f2(=1100 | f3=11000 | f4=110000 | f5= | f6=LAKSHYA_BANGALORE11 | f7=1100.000000 | f8=110000.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +f1=3 | f2(=3 | f3=3 | f4=3 | f5= | f6=LAKSHYA3 | f7=3.000000 | f8=3.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=3 | f2(=3 | f3=3 | f4=3 | f5= | f6=LAKSHYA3 | f7=3.000000 | f8=3.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=3 | f2(=3 | f3=3 | f4=3 | f5= | f6=LAKSHYA3 | f7=3.000000 | f8=3.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=5 | f2(=55 | f3=555 | f4=5555 | f5= | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2(=66 | f3=666 | f4=6666 | f5= | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5= | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=8 | f2(=88 | f3=888 | f4=8888 | f5= | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +f1=9 | f2(=99 | f3=999 | f4=9999 | f5= | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +9 rows selected +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f1!=7; +UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f2!=77 +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f3!=777; +UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f4!=7777; +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f5!='CSQL7'; +UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f6!='LAKSHYA7'; +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f7!=77.000000; +UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f8!=7777.000000; +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f9!='2007/7/7'; +UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f10!='07:07:07'; +UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f11!='2007/07/07 07:07:07'; +f1=70 | f2(=70 | f3=70 | f4=70 | f5= | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5= | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5= | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5= | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5= | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5= | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5= | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5= | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +f1=70 | f2(=70 | f3=70 | f4=70 | f5= | f6=LAKSHYA70 | f7=70.000000 | f8=70.000000 | f9=2070-07-07 | f10=07:07:07 | f11=2070-7-7 7:7:7 | +9 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test004 b/test/sqlapi/Csql/DMLStmt/exp.test004 new file mode 100644 index 00000000..f125b061 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test004 @@ -0,0 +1,28 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03'); +INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04'); +INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(varchar)=LAKSHYA1 | f7(float)=11.000000 | f8(double)=1111.000000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(varchar)=LAKSHYA2 | f7(float)=22.000000 | f8(double)=2222.000000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)=CSQL3 | f6(varchar)=LAKSHYA3 | f7(float)=33.000000 | f8(double)=3333.000000 | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=2003-3-3 3:3:3 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)=CSQL4 | f6(varchar)=LAKSHYA4 | f7(float)=44.000000 | f8(double)=4444.000000 | f9(date)=2004-04-04 | f10(time)=04:04:04 | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)=CSQL5 | f6(varchar)=LAKSHYA5 | f7(float)=55.000000 | f8(double)=5555.000000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=2005-5-5 5:5:5 | +5 rows selected +UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB1', f6='LAKSHYA_BANGALORE1', f7=f7+100, f8=f8+10000,f9='2001-01-11', f10='01:01:11', f11='2001-01-11 01:01:11' WHERE f1=1 and f2=11 and f3=111 and f4=1111; +UPDATE t1 SET f1=f1+20, f2=f2+200, f3=f3+2000, f4=f4+20000, f5='CSQLMMDB2', f6='LAKSHYA_BANGALORE2', f7=f7+200, f8=f8+20000,f9='2002-02-12', f10='02:02:12', f11='2002-02-12 02:02:12' WHERE f3=222 and f5='CSQL2' and f6<='LAKSHYA2'; +UPDATE t1 SET f1=f1+30, f2=f2+300, f3=f3+3000, f4=f4+30000, f5='CSQLMMDB3', f6='LAKSHYA_BANGALORE3', f7=f7+300, f8=f8+30000,f9='2003-03-13', f10='03:03:13', f11='2003-03-13 03:03:13' WHERE f3<=333 and f6<='LAKSHYA4' and (f3 = 333 or f3 = 2222); +UPDATE t1 SET f1=f1+40, f2=f2+400, f3=f3+4000, f4=f4+40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=f7+400, f8=f8+40000,f9='2004-04-14', f10='04:04:14', f11='2004-04-14 04:04:14' WHERE f3<=3333 and f6<='LAKSHYA6' and not(f3 = 3333 or f3 = 555) and (f6 = 'LAKSHYA4' or f6='LAKSHYA_BANGALORE3' or f9='2004/4/4'); +UPDATE t1 SET f1=f1+50, f2=f2+500, f3=f3+5000, f4=f4+50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=f7+500, f8=f8+50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE f1=5 and f2=55 and f3=555 and f4=5555 and f5='CSQL5' and f6='LAKSHYA5' and f7=55 and f8=5555 and f9='2005/05/05' and f10='05:05:05' and f11='2005/05/05 05:05:05'; +UPDATE t1 SET f1=50, f2=500, f3=5000, f4=50000, f5='CSQLMMDB50', f6='LAKSHYA_BANGALORE50', f7=500, f8=50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE f3=5555 or f4=44444 or f6='LAKSHYA_BANGALORE3' or f8=22222 or f11='2001/01/11 01:01:11'; +f1(tinyint)=50 | f2(smallint)=500 | f3(int)=5000 | f4(bigint)=50000 | f5(char)=CSQLMMDB50 | f6(varchar)=LAKSHYA_BANGALORE50 | f7(float)=500.000000 | f8(double)=50000.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=50 | f2(smallint)=500 | f3(int)=5000 | f4(bigint)=50000 | f5(char)=CSQLMMDB50 | f6(varchar)=LAKSHYA_BANGALORE50 | f7(float)=500.000000 | f8(double)=50000.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=50 | f2(smallint)=500 | f3(int)=5000 | f4(bigint)=50000 | f5(char)=CSQLMMDB50 | f6(varchar)=LAKSHYA_BANGALORE50 | f7(float)=500.000000 | f8(double)=50000.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=50 | f2(smallint)=500 | f3(int)=5000 | f4(bigint)=50000 | f5(char)=CSQLMMDB50 | f6(varchar)=LAKSHYA_BANGALORE50 | f7(float)=500.000000 | f8(double)=50000.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=50 | f2(smallint)=500 | f3(int)=5000 | f4(bigint)=50000 | f5(char)=CSQLMMDB50 | f6(varchar)=LAKSHYA_BANGALORE50 | f7(float)=500.000000 | f8(double)=50000.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +5 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test004n b/test/sqlapi/Csql/DMLStmt/exp.test004n new file mode 100644 index 00000000..19201a87 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test004n @@ -0,0 +1,28 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03'); +INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04'); +INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)= | f6(varchar)=LAKSHYA1 | f7(float)=11.000000 | f8(double)=1111.000000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)= | f6(varchar)=LAKSHYA2 | f7(float)=22.000000 | f8(double)=2222.000000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)= | f6(varchar)=LAKSHYA3 | f7(float)=33.000000 | f8(double)=3333.000000 | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=2003-3-3 3:3:3 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)= | f6(varchar)=LAKSHYA4 | f7(float)=44.000000 | f8(double)=4444.000000 | f9(date)=2004-04-04 | f10(time)=04:04:04 | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)= | f6(varchar)=LAKSHYA5 | f7(float)=55.000000 | f8(double)=5555.000000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=2005-5-5 5:5:5 | +5 rows selected +UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB1', f6='LAKSHYA_BANGALORE1', f7=f7+100, f8=f8+10000,f9='2001-01-11', f10='01:01:11', f11='2001-01-11 01:01:11' WHERE f1=1 and f2=11 and f3=111 and f4=1111; +UPDATE t1 SET f1=f1+20, f2=f2+200, f3=f3+2000, f4=f4+20000, f5='CSQLMMDB2', f6='LAKSHYA_BANGALORE2', f7=f7+200, f8=f8+20000,f9='2002-02-12', f10='02:02:12', f11='2002-02-12 02:02:12' WHERE f3=222 and f5='CSQL2' and f6<='LAKSHYA2'; +UPDATE t1 SET f1=f1+30, f2=f2+300, f3=f3+3000, f4=f4+30000, f5='CSQLMMDB3', f6='LAKSHYA_BANGALORE3', f7=f7+300, f8=f8+30000,f9='2003-03-13', f10='03:03:13', f11='2003-03-13 03:03:13' WHERE f3<=333 and f6<='LAKSHYA4' and (f3 = 333 or f3 = 2222); +UPDATE t1 SET f1=f1+40, f2=f2+400, f3=f3+4000, f4=f4+40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=f7+400, f8=f8+40000,f9='2004-04-14', f10='04:04:14', f11='2004-04-14 04:04:14' WHERE f3<=3333 and f6<='LAKSHYA6' and not(f3 = 3333 or f3 = 555) and (f6 = 'LAKSHYA4' or f6='LAKSHYA_BANGALORE3' or f9='2004/4/4'); +UPDATE t1 SET f1=f1+50, f2=f2+500, f3=f3+5000, f4=f4+50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=f7+500, f8=f8+50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE f1=5 and f2=55 and f3=555 and f4=5555 and f5='CSQL5' and f6='LAKSHYA5' and f7=55 and f8=5555 and f9='2005/05/05' and f10='05:05:05' and f11='2005/05/05 05:05:05'; +UPDATE t1 SET f1=50, f2=500, f3=5000, f4=50000, f5='CSQLMMDB50', f6='LAKSHYA_BANGALORE50', f7=500, f8=50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE f3=5555 or f4=44444 or f6='LAKSHYA_BANGALORE3' or f8=22222 or f11='2001/01/11 01:01:11'; +f1(tinyint)=50 | f2(smallint)=500 | f3(int)=5000 | f4(bigint)=50000 | f5(char)= | f6(varchar)=LAKSHYA_BANGALORE50 | f7(float)=500.000000 | f8(double)=50000.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=50 | f2(smallint)=500 | f3(int)=5000 | f4(bigint)=50000 | f5(char)= | f6(varchar)=LAKSHYA_BANGALORE50 | f7(float)=500.000000 | f8(double)=50000.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=50 | f2(smallint)=500 | f3(int)=5000 | f4(bigint)=50000 | f5(char)= | f6(varchar)=LAKSHYA_BANGALORE50 | f7(float)=500.000000 | f8(double)=50000.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=50 | f2(smallint)=500 | f3(int)=5000 | f4(bigint)=50000 | f5(char)= | f6(varchar)=LAKSHYA_BANGALORE50 | f7(float)=500.000000 | f8(double)=50000.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=50 | f2(smallint)=500 | f3(int)=5000 | f4(bigint)=50000 | f5(char)= | f6(varchar)=LAKSHYA_BANGALORE50 | f7(float)=500.000000 | f8(double)=50000.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +5 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test005 b/test/sqlapi/Csql/DMLStmt/exp.test005 new file mode 100644 index 00000000..c8989519 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test005 @@ -0,0 +1,25 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03'); +INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04'); +INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(varchar)=LAKSHYA1 | f7(float)=11.000000 | f8(double)=1111.000000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(varchar)=LAKSHYA2 | f7(float)=22.000000 | f8(double)=2222.000000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)=CSQL3 | f6(varchar)=LAKSHYA3 | f7(float)=33.000000 | f8(double)=3333.000000 | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=2003-3-3 3:3:3 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)=CSQL4 | f6(varchar)=LAKSHYA4 | f7(float)=44.000000 | f8(double)=4444.000000 | f9(date)=2004-04-04 | f10(time)=04:04:04 | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)=CSQL5 | f6(varchar)=LAKSHYA5 | f7(float)=55.000000 | f8(double)=5555.000000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=2005-5-5 5:5:5 | +5 rows selected +UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB1', f6='LAKSHYA_BANGALORE1', f7=f7+100, f8=f8+10000,f9='2001-01-11', f10='01:01:11', f11='2001-01-11 01:01:11' WHERE f1 in (20,1,30) and (f2 between 10 and 12) and f3 in (110,111) and (f4 between 1000 and 1112); +UPDATE t1 SET f1=f1+40, f2=f2+400, f3=f3+4000, f4=f4+40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=f7+400, f8=f8+40000,f9='2004-04-14', f10='04:04:14', f11='2004-04-14 04:04:14' WHERE f3<=3333 and f6<='LAKSHYA6' and not(f3 = 3333 or f3 = 555) and (f6 = 'LAKSHYA4' or f6='LAKSHYA_BANGALORE3') or f9 in ('2004/4/4','2002-02-02','2001-01-01'); +UPDATE t1 SET f1=f1+50, f2=f2+500, f3=f3+5000, f4=f4+50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=f7+500, f8=f8+50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE (f1=5 and f2=55 and f3=555 and f4=5555 and f5='CSQL5' and f6 like 'LAKSHYA_' and f7=55 and f8=5555 and f9='2005/05/05' and f10 in ('05:05:05')) or f11 in ('2005/05/05 05:05:05','2004-04-14 04:04:14'); +f1(tinyint)=11 | f2(smallint)=111 | f3(int)=1111 | f4(bigint)=11111 | f5(char)=CSQLMMDB1 | f6(varchar)=LAKSHYA_BANGALORE1 | f7(float)=111.000000 | f8(double)=11111.000000 | f9(date)=2001-01-11 | f10(time)=01:01:11 | f11(timestamp)=2001-1-11 1:1:11 | +f1(tinyint)=92 | f2(smallint)=922 | f3(int)=9222 | f4(bigint)=92222 | f5(char)=CSQLMMDB5 | f6(varchar)=LAKSHYA_BANGALORE5 | f7(float)=922.000000 | f8(double)=92222.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)=CSQL3 | f6(varchar)=LAKSHYA3 | f7(float)=33.000000 | f8(double)=3333.000000 | f9(date)=2003-03-3 | f10(time)=03:03:3 | f11(timestamp)=2003-3-13 3:3:3 | +f1(tinyint)=94 | f2(smallint)=944 | f3(int)=9444 | f4(bigint)=94444 | f5(char)=CSQLMMDB5 | f6(varchar)=LAKSHYA_BANGALORE5 | f7(float)=944.000000 | f8(double)=94444.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=55 | f2(smallint)=555 | f3(int)=5555 | f4(bigint)=55555 | f5(char)=CSQLMMDB5 | f6(varchar)=LAKSHYA_BANGALORE5 | f7(float)=555.000000 | f8(double)=55555.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +5 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test005n b/test/sqlapi/Csql/DMLStmt/exp.test005n new file mode 100644 index 00000000..4546b69a --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test005n @@ -0,0 +1,25 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03'); +INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04'); +INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)= | f6(varchar)=LAKSHYA1 | f7(float)=11.000000 | f8(double)=1111.000000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)= | f6(varchar)=LAKSHYA2 | f7(float)=22.000000 | f8(double)=2222.000000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)= | f6(varchar)=LAKSHYA3 | f7(float)=33.000000 | f8(double)=3333.000000 | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=2003-3-3 3:3:3 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)= | f6(varchar)=LAKSHYA4 | f7(float)=44.000000 | f8(double)=4444.000000 | f9(date)=2004-04-04 | f10(time)=04:04:04 | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)= | f6(varchar)=LAKSHYA5 | f7(float)=55.000000 | f8(double)=5555.000000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=2005-5-5 5:5:5 | +5 rows selected +UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB1', f6='LAKSHYA_BANGALORE1', f7=f7+100, f8=f8+10000,f9='2001-01-11', f10='01:01:11', f11='2001-01-11 01:01:11' WHERE f1 in (20,1,30) and (f2 between 10 and 12) and f3 in (110,111) and (f4 between 1000 and 1112); +UPDATE t1 SET f1=f1+40, f2=f2+400, f3=f3+4000, f4=f4+40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=f7+400, f8=f8+40000,f9='2004-04-14', f10='04:04:14', f11='2004-04-14 04:04:14' WHERE f3<=3333 and f6<='LAKSHYA6' and not(f3 = 3333 or f3 = 555) and (f6 = 'LAKSHYA4' or f6='LAKSHYA_BANGALORE3') or f9 in ('2004/4/4','2002-02-02','2001-01-01'); +UPDATE t1 SET f1=f1+50, f2=f2+500, f3=f3+5000, f4=f4+50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=f7+500, f8=f8+50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE (f1=5 and f2=55 and f3=555 and f4=5555 and f5='CSQL5' and f6 like 'LAKSHYA_' and f7=55 and f8=5555 and f9='2005/05/05' and f10 in ('05:05:05')) or f11 in ('2005/05/05 05:05:05','2004-04-14 04:04:14'); +f1(tinyint)=11 | f2(smallint)=111 | f3(int)=1111 | f4(bigint)=11111 | f5(char)=CSQLMMDB1 | f6(varchar)=LAKSHYA_BANGALORE1 | f7(float)=111.000000 | f8(double)=11111.000000 | f9(date)=2001-01-11 | f10(time)=01:01:11 | f11(timestamp)=2001-1-11 1:1:11 | +f1(tinyint)=92 | f2(smallint)=922 | f3(int)=9222 | f4(bigint)=92222 | f5(char)=CSQLMMDB5 | f6(varchar)=LAKSHYA_BANGALORE5 | f7(float)=922.000000 | f8(double)=92222.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)=CSQL3 | f6(varchar)=LAKSHYA3 | f7(float)=33.000000 | f8(double)=3333.000000 | f9(date)=2003-03-3 | f10(time)=03:03:3 | f11(timestamp)=2003-3-13 3:3:3 | +f1(tinyint)=94 | f2(smallint)=944 | f3(int)=9444 | f4(bigint)=94444 | f5(char)=CSQLMMDB5 | f6(varchar)=LAKSHYA_BANGALORE5 | f7(float)=944.000000 | f8(double)=94444.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +f1(tinyint)=55 | f2(smallint)=555 | f3(int)=5555 | f4(bigint)=55555 | f5(char)=CSQLMMDB5 | f6(varchar)=LAKSHYA_BANGALORE5 | f7(float)=555.000000 | f8(double)=55555.000000 | f9(date)=2005-05-15 | f10(time)=05:05:15 | f11(timestamp)=2005-5-15 5:5:15 | +5 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test006 b/test/sqlapi/Csql/DMLStmt/exp.test006 new file mode 100644 index 00000000..bbfab7e5 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test006 @@ -0,0 +1,31 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +0 rows selected +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f1 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f1 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f3 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f4 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f5 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f5 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f6 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f7 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f7 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f8 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f9 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f9 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f10 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f11 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f11 IS NOT NULL; +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +2 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test006n b/test/sqlapi/Csql/DMLStmt/exp.test006n new file mode 100644 index 00000000..bbfab7e5 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test006n @@ -0,0 +1,31 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +0 rows selected +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f1 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f1 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f3 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f4 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f5 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f5 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f6 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f7 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f7 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f8 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f9 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f9 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f10 IS NOT NULL; +UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f11 IS NULL; +UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f11 IS NOT NULL; +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +2 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test007 b/test/sqlapi/Csql/DMLStmt/exp.test007 new file mode 100644 index 00000000..1daaa9c0 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test007 @@ -0,0 +1,29 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +SELECT * FROM t1; +f1=1 | f2(=11 | f3=111 | f4=1111 | f5=CSQL1| f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=2 | f2(=22 | f3=222 | f4=2222 | f5=CSQL2 | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +f1=3 | f2(=33 | f3=333 | f4=3333 | f5=CSQL3 | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=4 | f2(=44 | f3=444 | f4=4444 | f5=CSQL4 | f6=LAKSHYA4 | f7=44.000000 | f8=4444.000000 | f9=2004-04-04 | f10=04:04:04 | f11=2004-4-4 4:4:4 | +f1=5 | f2(=55 | f3=555 | f4=5555 | f5=CSQL5 | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2(=66 | f3=666 | f4=6666 | f5=CSQL6 | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5=CSQL7 | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=8 | f2(=88 | f3=888 | f4=8888 | f5=CSQL8 | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +f1=9 | f2(=99 | f3=999 | f4=9999 | f5=CSQL9 | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +f1=10 | f2(=100 | f3=1000 | f4=10000 | f5=CSQL10 | f6=NULL | f7=100.000000 | f8=10000.000000 | f9=2010-10-10 | f10=10:10:10 | f11=2010-10-10 10:10:10 | +10 rows selected +DELETE FROM t1 WHERE f3=111; +DELETE FROM t1 WHERE f4<3333; +DELETE FROM t1 WHERE f6<='LAKSHYA3'; +DELETE FROM t1 WHERE f9>'2008-08-08' and f10 <'10:10:10'; +DELETE FROM t1 WHERE f3 between 100 and 500; +DELETE FROM t1 WHERE f6 like '0X0.00001BF9B1C34P-1022KSHYA5'; +DELETE FROM t1 WHERE f11 in ('2005-05-05 05:05:05','2006-06-06 06:06:06'); +DELETE FROM t1 WHERE f3 is NOT NULL and f4=7777; +DELETE FROM t1 WHERE f6 is NULL or not(f4=8888); +SELECT * FROM t1; +f1=8 | f2(=88 | f3=888 | f4=8888 | f5=CSQL8 | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +1 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test008 b/test/sqlapi/Csql/DMLStmt/exp.test008 new file mode 100644 index 00000000..d985f652 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test008 @@ -0,0 +1,56 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +SELECT * FROM t1; +f1=1 | f2(=11 | f3=111 | f4=1111 | f5=CSQL1 | f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=2 | f2(=22 | f3=222 | f4=2222 | f5=CSQL2 | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +f1=3 | f2(=33 | f3=333 | f4=3333 | f5=CSQL3 | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=4 | f2(=44 | f3=444 | f4=4444 | f5=CSQL4 | f6=LAKSHYA4 | f7=44.000000 | f8=4444.000000 | f9=2004-04-04 | f10=04:04:04 | f11=2004-4-4 4:4:4 | +f1=5 | f2(=55 | f3=555 | f4=5555 | f5=CSQL5 | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2(=66 | f3=666 | f4=6666 | f5=CSQL6 | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5=CSQL7 | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=8 | f2(=88 | f3=888 | f4=8888 | f5=CSQL8 | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +f1=9 | f2(=99 | f3=999 | f4=9999 | f5=CSQL9 | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +f1=10 | f2(=100 | f3=1000 | f4=10000 | f5=CSQL10 | f6=NULL | f7=100.000000 | f8=10000.000000 | f9=2010-10-10 | f10=10:10:10 | f11=2010-10-10 10:10:10 | +10 rows selected +SELECT * FROM t1 WHERE f3=111; +f1=1 | f2=11 | f3=111 | f4=1111 | f5=CSQL1 | f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +1 rows selected +SELECT * FROM t1 WHERE f4<3333; +f1=1 | f2=11 | f3=111 | f4=1111 | f5=CSQL5 | f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=2 | f2=22 | f3=222 | f4=2222 | f5= CSQL2| f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +2 rows selected +SELECT * FROM t1 WHERE f6<='LAKSHYA3'; +f1=1 | f2=11 | f3=111 | f4=1111 | f5=CSQL1 | f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=2 | f2=22 | f3=222 | f4=2222 | f5=CSQL2 | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +f1=3 | f2=33 | f3=333 | f4=3333 | f5=CSQL3 | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +3 rows selected +SELECT * FROM t1 WHERE f9>'2008-08-08' and f10 <'10:10:10'; +f1=9 | f2=99 | f3=999 | f4=9999 | f5=CSQL9 | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +1 rows selected +SELECT * FROM t1 WHERE f3 between 100 and 500; +f1=9 | f2(=99 | f3=999 | f4=9999 | f5=CSQL9 | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +1 rows selected +SELECT * FROM t1 WHERE f6 like '%_KSHYA5'; +f1=5 | f2=55 | f3=555 | f4=5555 | f5=CSQL5 | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +1 rows selected +SELECT * FROM t1 WHERE f11 in ('2005-05-05 05:05:05','2006-06-06 06:06:06'); +f1=5 | f2=55 | f3=555 | f4=5555 | f5=CSQL5 | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2=66 | f3=666 | f4=6666 | f5=CSQL6 | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +2 rows selected +SELECT * FROM t1 WHERE f3 is NOT NULL and f4=7777; +f1=7 | f2=77 | f3=777 | f4=7777 | f5=CSQL7 | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +1 rows selected +SELECT * FROM t1 WHERE f6 is NULL or not(f4=8888); +f1=1 | f2=11 | f3=111 | f4=1111 | f5=CSQL1| f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=2 | f2=22 | f3=222 | f4=2222 | f5=CSQL2 | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +f1=3 | f2=33 | f3=333 | f4=3333 | f5=CSQL3 | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=4 | f2=44 | f3=444 | f4=4444 | f5=CSQL4 | f6=LAKSHYA4 | f7=44.000000 | f8=4444.000000 | f9=2004-04-04 | f10=04:04:04 | f11=2004-4-4 4:4:4 | +f1=5 | f2=55 | f3=555 | f4=5555 | f5=CSQL5 | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2=66 | f3=666 | f4=6666 | f5=CSQL6 | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2=77 | f3=777 | f4=7777 | f5=CSQL7 | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=9 | f2=99 | f3=999 | f4=9999 | f5=CSQL9 | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +f1=10 | f2=100 | f3=1000 | f4=10000 | f5=CSQL10 | f6=NULL | f7=100.000000 | f8=10000.000000 | f9=2010-10-10 | f10=10:10:10 | f11=2010-10-10 10:10:10 | +9 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test008n b/test/sqlapi/Csql/DMLStmt/exp.test008n new file mode 100644 index 00000000..cabd88c5 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test008n @@ -0,0 +1,56 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +SELECT * FROM t1; +f1=1 | f2(=11 | f3=111 | f4=1111 | f5= | f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=2 | f2(=22 | f3=222 | f4=2222 | f5= | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +f1=3 | f2(=33 | f3=333 | f4=3333 | f5= | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=4 | f2(=44 | f3=444 | f4=4444 | f5= | f6=LAKSHYA4 | f7=44.000000 | f8=4444.000000 | f9=2004-04-04 | f10=04:04:04 | f11=2004-4-4 4:4:4 | +f1=5 | f2(=55 | f3=555 | f4=5555 | f5= | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2(=66 | f3=666 | f4=6666 | f5= | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2(=77 | f3=777 | f4=7777 | f5= | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=8 | f2(=88 | f3=888 | f4=8888 | f5= | f6=LAKSHYA8 | f7=88.000000 | f8=8888.000000 | f9=2008-08-08 | f10=08:08:08 | f11=2008-8-8 8:8:8 | +f1=9 | f2(=99 | f3=999 | f4=9999 | f5= | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +f1=10 | f2(=100 | f3=1000 | f4=10000 | f5= | f6=NULL | f7=100.000000 | f8=10000.000000 | f9=2010-10-10 | f10=10:10:10 | f11=2010-10-10 10:10:10 | +10 rows selected +SELECT * FROM t1 WHERE f3=111; +f1=1 | f2=11 | f3=111 | f4=1111 | f5= | f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +1 rows selected +SELECT * FROM t1 WHERE f4<3333; +f1=1 | f2=11 | f3=111 | f4=1111 | f5= | f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=2 | f2=22 | f3=222 | f4=2222 | f5= | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +2 rows selected +SELECT * FROM t1 WHERE f6<='LAKSHYA3'; +f1=1 | f2=11 | f3=111 | f4=1111 | f5= | f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=2 | f2=22 | f3=222 | f4=2222 | f5= | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +f1=3 | f2=33 | f3=333 | f4=3333 | f5= | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +3 rows selected +SELECT * FROM t1 WHERE f9>'2008-08-08' and f10 <'10:10:10'; +f1=9 | f2=99 | f3=999 | f4=9999 | f5= | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +1 rows selected +SELECT * FROM t1 WHERE f3 between 100 and 500; +f1=9 | f2(=99 | f3=999 | f4=9999 | f5= | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +1 rows selected +SELECT * FROM t1 WHERE f6 like '%_KSHYA5'; +f1=5 | f2=55 | f3=555 | f4=5555 | f5= | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +1 rows selected +SELECT * FROM t1 WHERE f11 in ('2005-05-05 05:05:05','2006-06-06 06:06:06'); +f1=5 | f2=55 | f3=555 | f4=5555 | f5= | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2=66 | f3=666 | f4=6666 | f5= | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +2 rows selected +SELECT * FROM t1 WHERE f3 is NOT NULL and f4=7777; +f1=7 | f2=77 | f3=777 | f4=7777 | f5= | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +1 rows selected +SELECT * FROM t1 WHERE f6 is NULL or not(f4=8888); +f1=1 | f2=11 | f3=111 | f4=1111 | f5= | f6=LAKSHYA1 | f7=11.000000 | f8=1111.000000 | f9=2001-01-01 | f10=01:01:01 | f11=2001-1-1 1:1:1 | +f1=2 | f2=22 | f3=222 | f4=2222 | f5= | f6=LAKSHYA2 | f7=22.000000 | f8=2222.000000 | f9=2002-02-02 | f10=02:02:02 | f11=2002-2-2 2:2:2 | +f1=3 | f2=33 | f3=333 | f4=3333 | f5= | f6=LAKSHYA3 | f7=33.000000 | f8=3333.000000 | f9=2003-03-03 | f10=03:03:03 | f11=2003-3-3 3:3:3 | +f1=4 | f2=44 | f3=444 | f4=4444 | f5= | f6=LAKSHYA4 | f7=44.000000 | f8=4444.000000 | f9=2004-04-04 | f10=04:04:04 | f11=2004-4-4 4:4:4 | +f1=5 | f2=55 | f3=555 | f4=5555 | f5= | f6=LAKSHYA5 | f7=55.000000 | f8=5555.000000 | f9=2005-05-05 | f10=05:05:05 | f11=2005-5-5 5:5:5 | +f1=6 | f2=66 | f3=666 | f4=6666 | f5= | f6=LAKSHYA6 | f7=66.000000 | f8=6666.000000 | f9=2006-06-06 | f10=06:06:06 | f11=2006-6-6 6:6:6 | +f1=7 | f2=77 | f3=777 | f4=7777 | f5= | f6=LAKSHYA7 | f7=77.000000 | f8=7777.000000 | f9=2007-07-07 | f10=07:07:07 | f11=2007-7-7 7:7:7 | +f1=9 | f2=99 | f3=999 | f4=9999 | f5= | f6=LAKSHYA9 | f7=99.000000 | f8=9999.000000 | f9=2009-09-09 | f10=09:09:09 | f11=2009-9-9 9:9:9 | +f1=10 | f2=100 | f3=1000 | f4=10000 | f5= | f6=NULL | f7=100.000000 | f8=10000.000000 | f9=2010-10-10 | f10=10:10:10 | f11=2010-10-10 10:10:10 | +9 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test009 b/test/sqlapi/Csql/DMLStmt/exp.test009 new file mode 100644 index 00000000..fc7b39a3 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test009 @@ -0,0 +1,12 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP,primary key(f3)); +CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP, foreign key(f3) references t1(f3)); +Table Name is t1 +Table Name is t2 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t2 VALUES(10,110,111,11110,'CSQL10','LAKSHYA10',110.00,1111.00,'2010-10-10','10:10:10','2010-10-10 10:10:10'); +DELETE FROM t1 WHERE f3=111; +Record can not be deleted from parrent because there exist a record in child record +Table dropped +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test009n b/test/sqlapi/Csql/DMLStmt/exp.test009n new file mode 100644 index 00000000..fc7b39a3 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test009n @@ -0,0 +1,12 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP,primary key(f3)); +CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP, foreign key(f3) references t1(f3)); +Table Name is t1 +Table Name is t2 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t2 VALUES(10,110,111,11110,'CSQL10','LAKSHYA10',110.00,1111.00,'2010-10-10','10:10:10','2010-10-10 10:10:10'); +DELETE FROM t1 WHERE f3=111; +Record can not be deleted from parrent because there exist a record in child record +Table dropped +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test010 b/test/sqlapi/Csql/DMLStmt/exp.test010 new file mode 100644 index 00000000..a9d61824 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test010 @@ -0,0 +1,22 @@ +Connection opened +REATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL);Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(varchar)=LAKSHYA1 | f7(float)=11.000000 | f8(double)=1111.000000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +1 rows selected +UPDATE t1 SET f1=NULL WHERE f1=1; +UPDATE t1 SET f2=NULL WHERE f1=11; +UPDATE t1 SET f3=NULL WHERE f3=111; +UPDATE t1 SET f4=NULL WHERE f3=1111; +UPDATE t1 SET f5=NULL WHERE f5='CSQL1'; +UPDATE t1 SET f6=NULL WHERE f6='LAKSHYA1'; +UPDATE t1 SET f7=NULL WHERE f7=11; +UPDATE t1 SET f8=NULL WHERE f8=1111; +UPDATE t1 SET f9=NULL WHERE f9='2001-01-01'; +UPDATE t1 SET f10=NULL WHERE f10='01:01:01'; +UPDATE t1 SET f11=NULL WHERE f11='2001-01-01 01:01:01'; +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(varchar)=LAKSHYA1 | f7(float)=11.000000 | f8(double)=1111.000000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +1 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test010n b/test/sqlapi/Csql/DMLStmt/exp.test010n new file mode 100644 index 00000000..b9d241af --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test010n @@ -0,0 +1,22 @@ +Connection opened +REATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL);Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)= | f6(varchar)=LAKSHYA1 | f7(float)=11.000000 | f8(double)=1111.000000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +1 rows selected +UPDATE t1 SET f1=NULL WHERE f1=1; +UPDATE t1 SET f2=NULL WHERE f1=11; +UPDATE t1 SET f3=NULL WHERE f3=111; +UPDATE t1 SET f4=NULL WHERE f3=1111; +UPDATE t1 SET f5=NULL WHERE f5='CSQL1'; +UPDATE t1 SET f6=NULL WHERE f6='LAKSHYA1'; +UPDATE t1 SET f7=NULL WHERE f7=11; +UPDATE t1 SET f8=NULL WHERE f8=1111; +UPDATE t1 SET f9=NULL WHERE f9='2001-01-01'; +UPDATE t1 SET f10=NULL WHERE f10='01:01:01'; +UPDATE t1 SET f11=NULL WHERE f11='2001-01-01 01:01:01'; +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)= | f6(varchar)=LAKSHYA1 | f7(float)=11.000000 | f8(double)=1111.000000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +1 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test011 b/test/sqlapi/Csql/DMLStmt/exp.test011 new file mode 100644 index 00000000..b3b8370e --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test011 @@ -0,0 +1,18 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT DEFAULT 1,f2 SMALLINT DEFAULT 11,f3 INT DEFAULT 111,f4 BIGINT DEFAULT 1111,f5 CHAR(20) DEFAULT 'CSQL1',f6 VARCHAR(30) DEFAULT 'Lakshya1',f7 FLOAT DEFAULT 11.11,f8 DOUBLE DEFAULT 1111.11,f9 DATE DEFAULT '2001-01-01',f10 TIME DEFAULT '01:01:01',f11 TIMESTAMP DEFAULT '2001-01-01 01:01:01'); +Table Name is t1 +INSERT INTO t1(f1) VALUES(1); +INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(varchar)=Lakshya1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=1 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +3 rows selected +Prepared +Executed +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=2 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +3 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test011n b/test/sqlapi/Csql/DMLStmt/exp.test011n new file mode 100644 index 00000000..6bbd5eb9 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test011n @@ -0,0 +1,18 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT DEFAULT 1,f2 SMALLINT DEFAULT 11,f3 INT DEFAULT 111,f4 BIGINT DEFAULT 1111,f5 CHAR(20) DEFAULT 'CSQL1',f6 VARCHAR(30) DEFAULT 'Lakshya1',f7 FLOAT DEFAULT 11.11,f8 DOUBLE DEFAULT 1111.11,f9 DATE DEFAULT '2001-01-01',f10 TIME DEFAULT '01:01:01',f11 TIMESTAMP DEFAULT '2001-01-01 01:01:01'); +Table Name is t1 +INSERT INTO t1(f1) VALUES(1); +INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)= | f6(varchar)=Lakshya1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=1 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +3 rows selected +Prepared +Executed +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=2 | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +f1(tinyint)=NULL | f2(smallint)=NULL | f3(int)=NULL | f4(bigint)=NULL | f5(char)=NULL | f6(varchar)=NULL | f7(float)=NULL | f8(double)=NULL | f9(date)=NULL | f10(time)=NULL | f11(timestamp)=NULL | +3 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test012 b/test/sqlapi/Csql/DMLStmt/exp.test012 new file mode 100644 index 00000000..c2d24329 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test012 @@ -0,0 +1,34 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,NULL,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',NULL,22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,NULL,'2003-03-03','03:03:03','2003-03-03 03:03:03'); +INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.44,4444.44,NULL,'04:04:04','2004-04-04 04:04:04'); +INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.55,5555.55,'2005-05-05','05:05:05',NULL); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=NULL | f4(bigint)=1111 | f5(char)= | f6(varchar)=LAKSHYA1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)= | f6(varchar)=NULL | f7(float)=22.219999 | f8(double)=2222.220000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)= | f6(varchar)=LAKSHYA3 | f7(float)=33.330002 | f8(double)=NULL | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=2003-3-3 3:3:3 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)= | f6(varchar)=LAKSHYA4 | f7(float)=44.439999 | f8(double)=4444.440000 | f9(date)=NULL | f10(time)=04:04:04 | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)= | f6(varchar)=LAKSHYA5 | f7(float)=55.549999 | f8(double)=5555.550000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=NULL | +5 rows selected +UPDATE t1 SET f3=111,f4=NULL where f3 is NULL; +UPDATE t1 SET f6='LAKSHYA2',f5=NULL where f6 is NULL; +UPDATE t1 SET f8=3333.33,f7=NULL where f8 is NULL; +UPDATE t1 SET f9='2004-04-04',f10=NULL where f9 is NULL; +UPDATE t1 SET f11='2005-05-05 05:05:05' where f11 is NULL; +UPDATE t1 SET f11=NULL where f11 = '2005-05-05 05:05:05'; +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=NULL | f5(char)=CSQL1 | f6(varchar)=LAKSHYA1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=NULL | f6(varchar)=LAKSHYA2 | f7(float)=22.219999 | f8(double)=2222.220000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)=CSQL3 | f6(varchar)=LAKSHYA3 | f7(float)=NULL | f8(double)=3333.330000 | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=2003-3-3 3:3:3 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)=CSQL4 | f6(varchar)=LAKSHYA4 | f7(float)=44.439999 | f8(double)=4444.440000 | f9(date)=2004-04-04 | f10(time)=NULL | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)=CSQL5 | f6(varchar)=LAKSHYA5 | f7(float)=55.549999 | f8(double)=5555.550000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=NULL | +5 rows selected +DELETE FROM t1 WHERE f4 is NULL; +DELETE FROM t1 WHERE f5 is NULL; +DELETE FROM t1 WHERE f7 is NULL; +DELETE FROM t1 WHERE f10 is NULL; +DELETE FROM t1 WHERE f11 is NULL; +0 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test012n b/test/sqlapi/Csql/DMLStmt/exp.test012n new file mode 100644 index 00000000..c2d24329 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test012n @@ -0,0 +1,34 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,NULL,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',NULL,22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,NULL,'2003-03-03','03:03:03','2003-03-03 03:03:03'); +INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.44,4444.44,NULL,'04:04:04','2004-04-04 04:04:04'); +INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.55,5555.55,'2005-05-05','05:05:05',NULL); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=NULL | f4(bigint)=1111 | f5(char)= | f6(varchar)=LAKSHYA1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)= | f6(varchar)=NULL | f7(float)=22.219999 | f8(double)=2222.220000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)= | f6(varchar)=LAKSHYA3 | f7(float)=33.330002 | f8(double)=NULL | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=2003-3-3 3:3:3 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)= | f6(varchar)=LAKSHYA4 | f7(float)=44.439999 | f8(double)=4444.440000 | f9(date)=NULL | f10(time)=04:04:04 | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)= | f6(varchar)=LAKSHYA5 | f7(float)=55.549999 | f8(double)=5555.550000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=NULL | +5 rows selected +UPDATE t1 SET f3=111,f4=NULL where f3 is NULL; +UPDATE t1 SET f6='LAKSHYA2',f5=NULL where f6 is NULL; +UPDATE t1 SET f8=3333.33,f7=NULL where f8 is NULL; +UPDATE t1 SET f9='2004-04-04',f10=NULL where f9 is NULL; +UPDATE t1 SET f11='2005-05-05 05:05:05' where f11 is NULL; +UPDATE t1 SET f11=NULL where f11 = '2005-05-05 05:05:05'; +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=NULL | f5(char)=CSQL1 | f6(varchar)=LAKSHYA1 | f7(float)=11.110000 | f8(double)=1111.110000 | f9(date)=2001-01-01 | f10(time)=01:01:01 | f11(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=NULL | f6(varchar)=LAKSHYA2 | f7(float)=22.219999 | f8(double)=2222.220000 | f9(date)=2002-02-02 | f10(time)=02:02:02 | f11(timestamp)=2002-2-2 2:2:2 | +f1(tinyint)=3 | f2(smallint)=33 | f3(int)=333 | f4(bigint)=3333 | f5(char)=CSQL3 | f6(varchar)=LAKSHYA3 | f7(float)=NULL | f8(double)=3333.330000 | f9(date)=2003-03-03 | f10(time)=03:03:03 | f11(timestamp)=2003-3-3 3:3:3 | +f1(tinyint)=4 | f2(smallint)=44 | f3(int)=444 | f4(bigint)=4444 | f5(char)=CSQL4 | f6(varchar)=LAKSHYA4 | f7(float)=44.439999 | f8(double)=4444.440000 | f9(date)=2004-04-04 | f10(time)=NULL | f11(timestamp)=2004-4-4 4:4:4 | +f1(tinyint)=5 | f2(smallint)=55 | f3(int)=555 | f4(bigint)=5555 | f5(char)=CSQL5 | f6(varchar)=LAKSHYA5 | f7(float)=55.549999 | f8(double)=5555.550000 | f9(date)=2005-05-05 | f10(time)=05:05:05 | f11(timestamp)=NULL | +5 rows selected +DELETE FROM t1 WHERE f4 is NULL; +DELETE FROM t1 WHERE f5 is NULL; +DELETE FROM t1 WHERE f7 is NULL; +DELETE FROM t1 WHERE f10 is NULL; +DELETE FROM t1 WHERE f11 is NULL; +0 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test013 b/test/sqlapi/Csql/DMLStmt/exp.test013 new file mode 100644 index 00000000..4839d954 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test013 @@ -0,0 +1,15 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT AUTO_INCREMENT,f4 BIGINT); +Table Name is t1 +INSERT INTO t1 VALUES(1, 10, 100, 1000); +INSERT INTO t1 VALUES(1, 10, NULL, 1000); +INSERT INTO t1 VALUES(1, 10, 200, 1000); +INSERT INTO t1 VALUES(1, 10, 150, 1000); +INSERT INTO t1 VALUES(1, 10, 100, 1000); +f1(tinyint)=1 | f2(smallint)=10 | f3(int)=100 | f4(bigint)=1000 | +f1(tinyint)=1 | f2(smallint)=10 | f3(int)=101 | f4(bigint)=1000 | +f1(tinyint)=1 | f2(smallint)=10 | f3(int)=200 | f4(bigint)=1000 | +f1(tinyint)=1 | f2(smallint)=10 | f3(int)=150 | f4(bigint)=1000 | +4 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test013n b/test/sqlapi/Csql/DMLStmt/exp.test013n new file mode 100644 index 00000000..4839d954 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test013n @@ -0,0 +1,15 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT AUTO_INCREMENT,f4 BIGINT); +Table Name is t1 +INSERT INTO t1 VALUES(1, 10, 100, 1000); +INSERT INTO t1 VALUES(1, 10, NULL, 1000); +INSERT INTO t1 VALUES(1, 10, 200, 1000); +INSERT INTO t1 VALUES(1, 10, 150, 1000); +INSERT INTO t1 VALUES(1, 10, 100, 1000); +f1(tinyint)=1 | f2(smallint)=10 | f3(int)=100 | f4(bigint)=1000 | +f1(tinyint)=1 | f2(smallint)=10 | f3(int)=101 | f4(bigint)=1000 | +f1(tinyint)=1 | f2(smallint)=10 | f3(int)=200 | f4(bigint)=1000 | +f1(tinyint)=1 | f2(smallint)=10 | f3(int)=150 | f4(bigint)=1000 | +4 rows selected +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test014 b/test/sqlapi/Csql/DMLStmt/exp.test014 new file mode 100644 index 00000000..e3e5339b --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test014 @@ -0,0 +1,30 @@ +Connection opened +CREATE TABLE t1(f1 INT,f2 BIGINT,f3 DOUBLE,f4 DATE); +Table Name is t1 +INSERT INTO t1 VALUES(100,100,100,'2009-11-23'); +INSERT INTO t1 VALUES(200,200,200,'2009-11-25'); +INSERT INTO t1 VALUES(100,300,300,'2009-11-27'); +INSERT INTO t1 VALUES(200,400,400,'2009-11-29'); +INSERT INTO t1 VALUES(300,500,500,'2009-12-01'); +SELECT * FROM t1; +f1(int)=100 | f2(bigint)=100 | f3(double)=100.000000 | f4(date)=2009-11-23 | +f1(int)=200 | f2(bigint)=200 | f3(double)=200.000000 | f4(date)=2009-11-25 | +f1(int)=100 | f2(bigint)=300 | f3(double)=300.000000 | f4(date)=2009-11-27 | +f1(int)=200 | f2(bigint)=400 | f3(double)=400.000000 | f4(date)=2009-11-29 | +f1(int)=300 | f2(bigint)=500 | f3(double)=500.000000 | f4(date)=2009-12-1 | +5 rows selected +select count(f4) from t1 = 5 + +select f1, sum(f2), avg(f3), max(f4) from t1 group by f1; +f1=100 | sum(f2)=400 | avg(f3)=200.000000 | max(f4)=2009-11-27 | +f1=200 | sum(f2)=600 | avg(f3)=300.000000 | max(f4)=2009-11-29 | +f1=300 | sum(f2)=500 | avg(f3)=500.000000 | max(f4)=2009-12-1 | + +select f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having max(f4)>'2009/11/29'; +f1=300 | sum(f2)=500 | avg(f3)=500.000000 | max(f4)=2009-12-1 | + +select f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having (max(f4) >'2009/11/26' and max(f4) < '2009-11-28') or avg(f3) > 400; +f1=100 | sum(f2)=400 | avg(f3)=200.000000 | max(f4)=2009-11-27 | +f1=300 | sum(f2)=500 | avg(f3)=500.000000 | max(f4)=2009-12-1 | +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test014n b/test/sqlapi/Csql/DMLStmt/exp.test014n new file mode 100644 index 00000000..e3e5339b --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test014n @@ -0,0 +1,30 @@ +Connection opened +CREATE TABLE t1(f1 INT,f2 BIGINT,f3 DOUBLE,f4 DATE); +Table Name is t1 +INSERT INTO t1 VALUES(100,100,100,'2009-11-23'); +INSERT INTO t1 VALUES(200,200,200,'2009-11-25'); +INSERT INTO t1 VALUES(100,300,300,'2009-11-27'); +INSERT INTO t1 VALUES(200,400,400,'2009-11-29'); +INSERT INTO t1 VALUES(300,500,500,'2009-12-01'); +SELECT * FROM t1; +f1(int)=100 | f2(bigint)=100 | f3(double)=100.000000 | f4(date)=2009-11-23 | +f1(int)=200 | f2(bigint)=200 | f3(double)=200.000000 | f4(date)=2009-11-25 | +f1(int)=100 | f2(bigint)=300 | f3(double)=300.000000 | f4(date)=2009-11-27 | +f1(int)=200 | f2(bigint)=400 | f3(double)=400.000000 | f4(date)=2009-11-29 | +f1(int)=300 | f2(bigint)=500 | f3(double)=500.000000 | f4(date)=2009-12-1 | +5 rows selected +select count(f4) from t1 = 5 + +select f1, sum(f2), avg(f3), max(f4) from t1 group by f1; +f1=100 | sum(f2)=400 | avg(f3)=200.000000 | max(f4)=2009-11-27 | +f1=200 | sum(f2)=600 | avg(f3)=300.000000 | max(f4)=2009-11-29 | +f1=300 | sum(f2)=500 | avg(f3)=500.000000 | max(f4)=2009-12-1 | + +select f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having max(f4)>'2009/11/29'; +f1=300 | sum(f2)=500 | avg(f3)=500.000000 | max(f4)=2009-12-1 | + +select f1, sum(f2), avg(f3), max(f4) from t1 group by f1 having (max(f4) >'2009/11/26' and max(f4) < '2009-11-28') or avg(f3) > 400; +f1=100 | sum(f2)=400 | avg(f3)=200.000000 | max(f4)=2009-11-27 | +f1=300 | sum(f2)=500 | avg(f3)=500.000000 | max(f4)=2009-12-1 | +Table dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test015 b/test/sqlapi/Csql/DMLStmt/exp.test015 new file mode 100644 index 00000000..97687940 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test015 @@ -0,0 +1,20 @@ +Connection opened +CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); +CREATE TABLE t1 AS SELECT * FROM t2; +Table Name is t2 +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6=f6+100, f7=f7+10000,f8='2009-11-20', f9='12:01:01', f10='2009-11-20 12:01:01' WHERE f1<=3; +f1(tinyint)=11 | f2(smallint)=111 | f3(int)=1111 | f4(bigint)=11111 | f5(char)=CSQLMMDB | f6(float)=111.110001 | f7(double)=11111.110000 | f8(date)=2009-11-20 | f9(time)=12:01:01 | f10(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=12 | f2(smallint)=122 | f3(int)=1222 | f4(bigint)=12222 | f5(char)=CSQLMMDB | f6(float)=122.220001 | f7(double)=12222.220000 | f8(date)=2009-11-20 | f9(time)=12:01:01 | f10(timestamp)=2009-11-20 12:1:1 | +2 rows selected +DELETE FROM t1 WHERE f1=12 OR f1=4; +f1(tinyint)=11 | f2(smallint)=111 | f3(int)=1111 | f4(bigint)=11111 | f5(char)=CSQLMMDB | f6(float)=111.110001 | f7(double)=11111.110000 | f8(date)=2009-11-20 | f9(time)=12:01:01 | f10(timestamp)=2009-11-20 12:1:1 | +1 rows selected +Table t1 dropped +Table t2 dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test015n b/test/sqlapi/Csql/DMLStmt/exp.test015n new file mode 100644 index 00000000..97687940 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test015n @@ -0,0 +1,20 @@ +Connection opened +CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); +CREATE TABLE t1 AS SELECT * FROM t2; +Table Name is t2 +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6=f6+100, f7=f7+10000,f8='2009-11-20', f9='12:01:01', f10='2009-11-20 12:01:01' WHERE f1<=3; +f1(tinyint)=11 | f2(smallint)=111 | f3(int)=1111 | f4(bigint)=11111 | f5(char)=CSQLMMDB | f6(float)=111.110001 | f7(double)=11111.110000 | f8(date)=2009-11-20 | f9(time)=12:01:01 | f10(timestamp)=2009-11-20 12:1:1 | +f1(tinyint)=12 | f2(smallint)=122 | f3(int)=1222 | f4(bigint)=12222 | f5(char)=CSQLMMDB | f6(float)=122.220001 | f7(double)=12222.220000 | f8(date)=2009-11-20 | f9(time)=12:01:01 | f10(timestamp)=2009-11-20 12:1:1 | +2 rows selected +DELETE FROM t1 WHERE f1=12 OR f1=4; +f1(tinyint)=11 | f2(smallint)=111 | f3(int)=1111 | f4(bigint)=11111 | f5(char)=CSQLMMDB | f6(float)=111.110001 | f7(double)=11111.110000 | f8(date)=2009-11-20 | f9(time)=12:01:01 | f10(timestamp)=2009-11-20 12:1:1 | +1 rows selected +Table t1 dropped +Table t2 dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test016 b/test/sqlapi/Csql/DMLStmt/exp.test016 new file mode 100644 index 00000000..d31184e9 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test016 @@ -0,0 +1,20 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6=f6+100, f7=f7+10000,f8='2009-11-20', f9='12:01:01', f10='2009-11-20 12:01:01' WHERE f1<=3; +Roll back Transaction +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +DELETE FROM t1 WHERE f1=12 OR f1=4; +Roll back Transaction +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +Table t1 dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test016n b/test/sqlapi/Csql/DMLStmt/exp.test016n new file mode 100644 index 00000000..d31184e9 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test016n @@ -0,0 +1,20 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6=f6+100, f7=f7+10000,f8='2009-11-20', f9='12:01:01', f10='2009-11-20 12:01:01' WHERE f1<=3; +Roll back Transaction +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +DELETE FROM t1 WHERE f1=12 OR f1=4; +Roll back Transaction +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +Table t1 dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test017 b/test/sqlapi/Csql/DMLStmt/exp.test017 new file mode 100644 index 00000000..99454372 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test017 @@ -0,0 +1,9 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(10),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); +Table Name is t1 +SELECT COUNT(*) FROM t1; +t1.COUNT(*) +----------- + 5000 +Table t1 dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test017n b/test/sqlapi/Csql/DMLStmt/exp.test017n new file mode 100644 index 00000000..99454372 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test017n @@ -0,0 +1,9 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(10),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); +Table Name is t1 +SELECT COUNT(*) FROM t1; +t1.COUNT(*) +----------- + 5000 +Table t1 dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test018 b/test/sqlapi/Csql/DMLStmt/exp.test018 new file mode 100644 index 00000000..7758b22c --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test018 @@ -0,0 +1,18 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); +create index idxbigint on t1(f4) unique; +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 VALUES(2,22,333,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +Insertion of duplicate record failed +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +UPDATE t1 SET f4=1111 WHERE f4=2222; +Update Failed due to unique key can not be updated +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +Table t1 dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/exp.test018n b/test/sqlapi/Csql/DMLStmt/exp.test018n new file mode 100644 index 00000000..7758b22c --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/exp.test018n @@ -0,0 +1,18 @@ +Connection opened +CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); +create index idxbigint on t1(f4) unique; +Table Name is t1 +INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); +INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +INSERT INTO t1 VALUES(2,22,333,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); +Insertion of duplicate record failed +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +UPDATE t1 SET f4=1111 WHERE f4=2222; +Update Failed due to unique key can not be updated +f1(tinyint)=1 | f2(smallint)=11 | f3(int)=111 | f4(bigint)=1111 | f5(char)=CSQL1 | f6(float)=11.110000 | f7(double)=1111.110000 | f8(date)=2001-01-01 | f9(time)=01:01:01 | f10(timestamp)=2001-1-1 1:1:1 | +f1(tinyint)=2 | f2(smallint)=22 | f3(int)=222 | f4(bigint)=2222 | f5(char)=CSQL2 | f6(float)=22.219999 | f7(double)=2222.220000 | f8(date)=2002-02-02 | f9(time)=02:02:02 | f10(timestamp)=2002-2-2 2:2:2 | +2 rows selected +Table t1 dropped +Connection Closed diff --git a/test/sqlapi/Csql/DMLStmt/insertonalldatatype.c b/test/sqlapi/Csql/DMLStmt/insertonalldatatype.c new file mode 100644 index 00000000..02718b42 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/insertonalldatatype.c @@ -0,0 +1,140 @@ +/* + Insert records into table in 2 ways(for all datatypes). + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP, primary key(f3)); + CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP, foreign key(f3) references t1(f3)); + Insert 5 records into t1. + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11) VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); + INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10) VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,3333.33,'2003-03-03','03:03:03'); + SELECT * FROM t1; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n"); + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + + printf("INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11) VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');\n"); + stmt->prepare("INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11) VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + stmt->execute(rows); + + printf("INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10) VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,3333.33,'2003-03-03','03:03:03');\n"); + stmt->prepare("INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10) VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,3333.33,'2003-03-03','03:03:03');"); + stmt->execute(rows); + stmt->free(); + con->commit(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/notnullonalldatatype.c b/test/sqlapi/Csql/DMLStmt/notnullonalldatatype.c new file mode 100644 index 00000000..370de9f7 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/notnullonalldatatype.c @@ -0,0 +1,336 @@ +/* + NOT NULL Constraint Testing with all datatypes. + CREATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL); + Try to put null values in Not Null fields,it should not be allowed +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("REATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL);"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n"); + rv = stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + if(rv!=OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); con->disconnect(); delete stmt; delete con; + return 6; + } + rv = stmt->execute(rows); + if(rv!=OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); con->disconnect(); delete stmt; delete con; + return 7; + } + + printf("INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n"); + rv = stmt->prepare("INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);"); + if(rv!=OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); con->disconnect(); delete stmt; delete con; + return 8; + } + rv = stmt->execute(rows); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); con->disconnect(); delete stmt; delete con; + return 9; + } + + printf("INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n"); + rv = stmt->prepare("INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);"); + if(rv!=OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); con->disconnect(); delete stmt; delete con; + return 10; + } + rv = stmt->execute(rows); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) { printf("Table Dropped successfully\n"); } + stmt->free(); con->disconnect(); delete stmt; delete con; + return 11; + } + + con->commit(); + stmt->free(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 12; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 13; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); +//Updating records + printf("UPDATE t1 SET f1=NULL WHERE f1=1;\n"); + rv = stmt->prepare("UPDATE t1 SET f1=null WHERE f1=1;"); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) printf("Table Dropped successfully\n"); + stmt->free(); con->disconnect(); delete stmt; delete con; + return 14; + } + + printf("UPDATE t1 SET f2=NULL WHERE f1=11;\n"); + rv = stmt->prepare("UPDATE t1 SET f2=NULL WHERE f1=11;"); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) printf("Table Dropped successfully\n"); + stmt->free(); con->disconnect(); delete stmt; delete con; + return 15; + } + + printf("UPDATE t1 SET f3=NULL WHERE f3=111;\n"); + rv = stmt->prepare("UPDATE t1 SET f3=NULL WHERE f1=111;"); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) printf("Table Dropped successfully\n"); + stmt->free(); con->disconnect(); delete stmt; delete con; + return 16; + } + + printf("UPDATE t1 SET f4=NULL WHERE f3=1111;\n"); + rv = stmt->prepare("UPDATE t1 SET f4=NULL WHERE f4=1111;"); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) printf("Table Dropped successfully\n"); + stmt->free(); con->disconnect(); delete stmt; delete con; + return 17; + } + + printf("UPDATE t1 SET f5=NULL WHERE f5='CSQL1';\n"); + rv = stmt->prepare("UPDATE t1 SET f5=NULL WHERE f5='CSQL1';"); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) printf("Table Dropped successfully\n"); + stmt->free(); con->disconnect(); delete stmt; delete con; + return 18; + } + + printf("UPDATE t1 SET f6=NULL WHERE f6='LAKSHYA1';\n"); + rv = stmt->prepare("UPDATE t1 SET f6=NULL WHERE f6='LAKSHYA1';"); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) printf("Table Dropped successfully\n"); + stmt->free(); con->disconnect(); delete stmt; delete con; + return 19; + } + + printf("UPDATE t1 SET f7=NULL WHERE f7=11;\n"); + rv = stmt->prepare("UPDATE t1 SET f7=NULL WHERE f7=11;"); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) printf("Table Dropped successfully\n"); + stmt->free(); con->disconnect(); delete stmt; delete con; + return 20; + } + + printf("UPDATE t1 SET f8=NULL WHERE f8=1111;\n"); + rv = stmt->prepare("UPDATE t1 SET f8=NULL WHERE f8=1111;"); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) printf("Table Dropped successfully\n"); + stmt->free(); con->disconnect(); delete stmt; delete con; + return 21; + } + + printf("UPDATE t1 SET f9=NULL WHERE f9='2001-01-01';\n"); + rv = stmt->prepare("UPDATE t1 SET f9=NULL WHERE f9='2001-01-01';"); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) printf("Table Dropped successfully\n"); + stmt->free(); con->disconnect(); delete stmt; delete con; + return 22; + } + + printf("UPDATE t1 SET f10=NULL WHERE f10='01:01:01';\n"); + rv = stmt->prepare("UPDATE t1 SET f10=NULL WHERE f10='01:01:01';"); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) printf("Table Dropped successfully\n"); + stmt->free(); con->disconnect(); delete stmt; delete con; + return 23; + } + + printf("UPDATE t1 SET f11=NULL WHERE f11='2001-01-01 01:01:01';\n"); + rv = stmt->prepare("UPDATE t1 SET f11=NULL WHERE f11='2001-01-01 01:01:01';"); + if(rv==OK) { + stmt->prepare("DROP TABLE t1;"); + stmt->execute(rows); + if(rv==OK) printf("Table Dropped successfully\n"); + stmt->free(); con->disconnect(); delete stmt; delete con; + return 24; + } + +//Fetching records after Update + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 25; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 26; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 27; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 28; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/null_alldatatype.c b/test/sqlapi/Csql/DMLStmt/null_alldatatype.c new file mode 100644 index 00000000..50b48205 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/null_alldatatype.c @@ -0,0 +1,325 @@ +/* + is null and is notnot null test using update statement + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); + Insert 5 records into t1. + INSERT INTO t1 VALUES(1,11,NULL,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',NULL,22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); + INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,NULL,'2003-03-03','03:03:03','2003-03-03 03:03:03'); + INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.44,4444.44,NULL,'04:04:04','2004-04-04 04:04:04'); + INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.55,5555.55,'2005-05-05','05:05:05',NULL); + UPDATE t1 SET f3=111,f4=NULL where f3 is NULL; + UPDATE t1 SET f6='LAKSHYA2',f5=NULL where f6 is NULL; + UPDATE t1 SET f8=3333.33,f7=NULL where f8 is NULL; + UPDATE t1 SET f9='2004-04-04',f10=NULL where f9 is NULL; + UPDATE t1 SET f11='2005-05-05 05:05:05' where f11 is NULL; + UPDATE t1 SET f11=NULL where f11 = '2005-05-05 05:05:05'; + DELETE FROM t1 WHERE f4 is NULL; + DELETE FROM t1 WHERE f5 is NULL; + DELETE FROM t1 WHERE f7 is NULL; + DELETE FROM t1 WHERE f10 is NULL; + DELETE FROM t1 WHERE f11 is NULL; + SELECT * FROM t1; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1,11,NULL,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n"); + stmt->prepare("INSERT INTO t1 VALUES(1,11,NULL,1111,'CSQL1','LAKSHYA1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',NULL,22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');\n"); + stmt->prepare("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',NULL,22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,NULL,'2003-03-03','03:03:03','2003-03-03 03:03:03');\n"); + stmt->prepare("INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.33,NULL,'2003-03-03','03:03:03','2003-03-03 03:03:03');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.44,4444.44,NULL,'04:04:04','2004-04-04 04:04:04');\n"); + stmt->prepare("INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.44,4444.44,NULL,'04:04:04','2004-04-04 04:04:04');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.55,5555.55,'2005-05-05','05:05:05',NULL);\n"); + stmt->prepare("INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.55,5555.55,'2005-05-05','05:05:05',NULL);"); + stmt->execute(rows); + con->commit(); + stmt->free(); + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%i | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); +//Updating records + con->beginTrans(); + printf("UPDATE t1 SET f3=111,f4=NULL where f3 is NULL;\n"); + strcpy(statement,"UPDATE t1 SET f3=111,f4=NULL where f3 is NULL;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + printf("UPDATE t1 SET f6='LAKSHYA2',f5=NULL where f6 is NULL;\n"); + strcpy(statement,"UPDATE t1 SET f6='LAKSHYA2',f5=NULL where f6 is NULL;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("UPDATE t1 SET f8=3333.33,f7=NULL where f8 is NULL;\n"); + strcpy(statement,"UPDATE t1 SET f8=3333.33,f7=NULL where f8 is NULL;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("UPDATE t1 SET f9='2004-04-04',f10=NULL where f9 is NULL;\n"); + strcpy(statement,"UPDATE t1 SET f9='2004-04-04',f10=NULL where f9 is NULL;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 14; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 15; } + printf("UPDATE t1 SET f11='2005-05-05 05:05:05' where f11 is NULL;\n"); + strcpy(statement,"UPDATE t1 SET f11='2005-05-05 05:05:05' where f11 is NULL;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 16; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 17; } + printf("UPDATE t1 SET f11=NULL where f11 = '2005-05-05 05:05:05';\n"); + strcpy(statement,"UPDATE t1 SET f11=NULL where f11 = '2005-05-05 05:05:05';"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 18; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 19; } + con->commit(); + stmt->free(); + +//Fetching records after Update + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 20; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 21; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%i | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); +//Deleting records + con->beginTrans(); + printf("DELETE FROM t1 WHERE f4 is NULL;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f4 is NULL;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 22; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 23; } + printf("DELETE FROM t1 WHERE f5 is NULL;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f5 is NULL;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 24; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 25; } + printf("DELETE FROM t1 WHERE f7 is NULL;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f7 is NULL;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 26; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 27; } + printf("DELETE FROM t1 WHERE f10 is NULL;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f10 is NULL;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 28; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 29; } + printf("DELETE FROM t1 WHERE f11 is NULL;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f11 is NULL;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 30; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 31; } + con->commit(); + stmt->free(); + +//Fetching records after Delete + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 32; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 11; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 33; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 34; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/pkeyfkeydml.c b/test/sqlapi/Csql/DMLStmt/pkeyfkeydml.c new file mode 100644 index 00000000..98cbe377 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/pkeyfkeydml.c @@ -0,0 +1,94 @@ +/* + primary key and foreign key constraint checking(for all datatypes). + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP, primary key(f3)); + CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP, foreign key(f3) references t1(f3)); + Insert 5 records into t1. + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t2 VALUES(10,110,111,11110,'CSQL10','LAKSHYA10',110.00,1111.00,'2010-10-10','10:10:10','2010-10-10 10:10:10'); + DELETE FROM t1 WHERE f3=111; It should fail + SELECT * FROM t1; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP,primary key(f3));\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP,primary key(f3));"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); + printf("CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP, foreign key(f3) references t1(f3));\n"); + strcpy(statement,"CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP, foreign key(f3) references t1(f3));"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n"); + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + + printf("INSERT INTO t2 VALUES(10,110,111,11110,'CSQL10','LAKSHYA10',110.00,1111.00,'2010-10-10','10:10:10','2010-10-10 10:10:10');\n"); + stmt->prepare("INSERT INTO t2 VALUES(10,110,111,11110,'CSQL10','LAKSHYA10',110.00,1111.00,'2010-10-10','10:10:10','2010-10-10 10:10:10');"); + stmt->execute(rows); + + printf("DELETE FROM t1 WHERE f3=111;\n"); + rv = stmt->prepare("DELETE FROM t1 WHERE f3=111;"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 9; } + printf("Record can not be deleted from parrent because there exist a record in child record\n"); + +//Droping table + strcpy(statement,"DROP TABLE t2;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("Table dropped\n"); + stmt->free(); + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/rollbackafterdml.c b/test/sqlapi/Csql/DMLStmt/rollbackafterdml.c new file mode 100644 index 00000000..ff865636 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/rollbackafterdml.c @@ -0,0 +1,250 @@ +/* + Rollback after dml + CREATE TABLE t2(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); + UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6=f6+100, f7=f7+10000,f8='2009-11-20', f9='12:01:01', f10='2009-11-20 12:01:01' WHERE f1<=3; + rollback; + DELETE FROM t1 WHERE f1=12 OR f1=4; + rollback; + select * from t1; should display the records which are put in the table only through insert operation +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n"); + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');\n"); + stmt->prepare("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + float f6var; + double f7var; + Date f8var; + Time f9var; + TimeStamp f10var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 9; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(float)=NULL | "); + else printf("f6(float)=%f | ", f6var); + if(stmt->isFldNull(7)) printf("f7(double)=NULL | "); + else printf("f7(double)=%lf | ", f7var); + if(stmt->isFldNull(8)) printf("f8(date)=NULL | "); + else printf("f8(date)=%02d-%02d-%02d | ", f8var.year(),f8var.month(),f8var.dayOfMonth()); + if(stmt->isFldNull(9)) printf("f9(time)=NULL | "); + else printf("f9(time)=%02d:%02d:%02d | ", f9var.hours(),f9var.minutes(),f9var.seconds()); + if(stmt->isFldNull(10)) printf("f10(timestamp)=NULL | "); + else printf("f10(timestamp)=%d-%d-%d %d:%d:%d | ", f10var.year(),f10var.month(),f10var.dayOfMonth(),f10var.hours(),f10var.minutes(),f10var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + +//Updating records. + con->beginTrans(); + printf("UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6=f6+100, f7=f7+10000,f8='2009-11-20', f9='12:01:01', f10='2009-11-20 12:01:01' WHERE f1<=3;\n"); + strcpy(statement,"UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB', f6=f6+100, f7=f7+10000,f8='2009-11-20', f9='12:01:01', f10='2009-11-20 12:01:01' WHERE f1<=3;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("Roll back Transaction\n"); + con->rollback(); + stmt->free(); + +//Fetching records after update + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 12; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 13; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(float)=NULL | "); + else printf("f6(float)=%f | ", f6var); + if(stmt->isFldNull(7)) printf("f7(double)=NULL | "); + else printf("f7(double)=%lf | ", f7var); + if(stmt->isFldNull(8)) printf("f8(date)=NULL | "); + else printf("f8(date)=%02d-%02d-%02d | ", f8var.year(),f8var.month(),f8var.dayOfMonth()); + if(stmt->isFldNull(9)) printf("f9(time)=NULL | "); + else printf("f9(time)=%02d:%02d:%02d | ", f9var.hours(),f9var.minutes(),f9var.seconds()); + if(stmt->isFldNull(10)) printf("f10(timestamp)=NULL | "); + else printf("f10(timestamp)=%d-%d-%d %d:%d:%d | ", f10var.year(),f10var.month(),f10var.dayOfMonth(),f10var.hours(),f10var.minutes(),f10var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + +//Deleting Records. + con->beginTrans(); + printf("DELETE FROM t1 WHERE f1=12 OR f1=4;\n"); + strcpy(statement,"DELETE FROM t1 WHERE f1=12 OR f1=4;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 14; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 15; } + printf("Roll back Transaction\n"); + con->rollback(); + stmt->free(); + +//Fetching records after delete + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 16; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 17; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(float)=NULL | "); + else printf("f6(float)=%f | ", f6var); + if(stmt->isFldNull(7)) printf("f7(double)=NULL | "); + else printf("f7(double)=%lf | ", f7var); + if(stmt->isFldNull(8)) printf("f8(date)=NULL | "); + else printf("f8(date)=%02d-%02d-%02d | ", f8var.year(),f8var.month(),f8var.dayOfMonth()); + if(stmt->isFldNull(9)) printf("f9(time)=NULL | "); + else printf("f9(time)=%02d:%02d:%02d | ", f9var.hours(),f9var.minutes(),f9var.seconds()); + if(stmt->isFldNull(10)) printf("f10(timestamp)=NULL | "); + else printf("f10(timestamp)=%d-%d-%d %d:%d:%d | ", f10var.year(),f10var.month(),f10var.dayOfMonth(),f10var.hours(),f10var.minutes(),f10var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 18; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 19; } + printf("Table t1 dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/selectalloperatoronalldatatype.c b/test/sqlapi/Csql/DMLStmt/selectalloperatoronalldatatype.c new file mode 100644 index 00000000..3ec888cf --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/selectalloperatoronalldatatype.c @@ -0,0 +1,606 @@ +/* + Test Update conditionally using relational operators on all datatypes. + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); + Insert 5 records into t1. + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02'); + INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03'); + INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04'); + INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05'); + INSERT INTO t1 VALUES(6,66,666,6666,'CSQL6','LAKSHYA6',66.00,6666.00,'2006-06-06','06:06:06','2006-06-06 06:06:06'); + INSERT INTO t1 VALUES(7,77,777,7777,'CSQL7','LAKSHYA7',77.00,7777.00,'2007-07-07','07:07:07','2007-07-07 07:07:07'); + INSERT INTO t1 VALUES(8,88,888,8888,'CSQL8','LAKSHYA8',88.00,8888.00,'2008-08-08','08:08:08','2008-08-08 08:08:08'); + INSERT INTO t1 VALUES(9,99,999,9999,'CSQL9','LAKSHYA9',99.00,9999.00,'2009-09-09','09:09:09','2009-09-09 09:09:09'); + INSERT INTO t1 VALUES(10,100,1000,10000,'CSQL10',NULL,100.00,10000.00,'2010-10-10','10:10:10','2010-10-10 10:10:10'); + + SELECT * FROM t1; + SELECT * FROM t1 WHERE f3=111; + SELECT * FROM t1 WHERE f4<3333; + SELECT * FROM t1 WHERE f6<='LAKSHYA3'; + SELECT * FROM t1 WHERE f9>'2008-08-08' and f10 <'10:10:10'; + SELECT * FROM t1 WHERE f3 between 100 and 500; + SELECT * FROM t1 WHERE f6 like '%AKSHYA5'; + SELECT * FROM t1 WHERE f11 in ('2005-05-05 05:05:05','2006-06-06 06:06:06'); + SELECT * FROM t1 WHERE f3 is NOT NULL and f4=7777; + SELECT * FROM t1 WHERE f6 is NULL or not(f4=8888); +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(6,66,666,6666,'CSQL6','LAKSHYA6',66.00,6666.00,'2006-06-06','06:06:06','2006-06-06 06:06:06');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(7,77,777,7777,'CSQL7','LAKSHYA7',77.00,7777.00,'2007-07-07','07:07:07','2007-07-07 07:07:07');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(8,88,888,8888,'CSQL8','LAKSHYA8',88.00,8888.00,'2008-08-08','08:08:08','2008-08-08 08:08:08');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(9,99,999,9999,'CSQL9','LAKSHYA9',99.00,9999.00,'2009-09-09','09:09:09','2009-09-09 09:09:09');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(10,100,1000,10000,'CSQL10',NULL,100.00,10000.00,'2010-10-10','10:10:10','2010-10-10 10:10:10');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after + printf("SELECT * FROM t1;\n"); + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(=NULL | "); + else printf("f2(=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + printf("SELECT * FROM t1 WHERE f3=111;\n"); + strcpy(statement,"SELECT * FROM t1 WHERE f3=111;"); + rv = stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 8; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2=NULL | "); + else printf("f2=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + printf("SELECT * FROM t1 WHERE f4<3333;\n"); + strcpy(statement,"SELECT * FROM t1 WHERE f4<3333;"); + rv = stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 9; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2=NULL | "); + else printf("f2=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + printf("SELECT * FROM t1 WHERE f6<='LAKSHYA3';\n"); + strcpy(statement,"SELECT * FROM t1 WHERE f6<='LAKSHYA3';"); + rv = stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 10; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2=NULL | "); + else printf("f2=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + printf("SELECT * FROM t1 WHERE f9>'2008-08-08' and f10 <'10:10:10';\n"); + strcpy(statement,"SELECT * FROM t1 WHERE f9>'2008-08-08' and f10 <'10:10:10';"); + rv = stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 11; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2=NULL | "); + else printf("f2=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + printf("SELECT * FROM t1 WHERE f3 between 100 and 500;\n"); + strcpy(statement,"SELECT * FROM t1 WHERE f3 between 100 and 500;"); + rv = stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 12; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2=NULL | "); + else printf("f2=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + printf("SELECT * FROM t1 WHERE f6 like '%AKSHYA5';\n"); + strcpy(statement,"SELECT * FROM t1 WHERE f6 like '%AKSHYA5';"); + rv = stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 13; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2=NULL | "); + else printf("f2=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + printf("SELECT * FROM t1 WHERE f11 in ('2005-05-05 05:05:05','2006-06-06 06:06:06');\n"); + strcpy(statement,"SELECT * FROM t1 WHERE f11 in ('2005-05-05 05:05:05','2006-06-06 06:06:06');"); + rv = stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 14; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2=NULL | "); + else printf("f2=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + printf("SELECT * FROM t1 WHERE f3 is NOT NULL and f4=7777;\n"); + strcpy(statement,"SELECT * FROM t1 WHERE f3 is NOT NULL and f4=7777;"); + rv = stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 15; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2=NULL | "); + else printf("f2=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + printf("SELECT * FROM t1 WHERE f6 is NULL or not(f4=8888);\n"); + strcpy(statement,"SELECT * FROM t1 WHERE f6 is NULL or not(f4=8888);"); + rv = stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 16; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2=NULL | "); + else printf("f2=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 17; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 18; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/stmtpre5000times.c b/test/sqlapi/Csql/DMLStmt/stmtpre5000times.c new file mode 100644 index 00000000..2c159ba6 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/stmtpre5000times.c @@ -0,0 +1,89 @@ +/* + Statement prepare and execute 5000 times . + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); + prepare and execute the below statement 5000 times + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + select count(*) should display 5000 records +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(10),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(10),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + rows=0; + int i=0; + con->beginTrans(); + for(i=8; i<= 5007; i++) + { + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return i; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return i+1; } + } + con->commit(); + stmt->free(); + + int cnt=0; + +//Fetching records after insert + printf("SELECT COUNT(*) FROM t1;\n"); + strcpy(statement,"SELECT COUNT(*) FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5008; } + stmt->bindField(1,&cnt); + rv = con->beginTrans(); + if(rv!=OK)return 9; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("t1.COUNT(*)\n-----------\n %d \n", cnt); + } + stmt->free(); + rv = con->commit(); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5009; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5010; } + printf("Table t1 dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/uniquekeyviolation.c b/test/sqlapi/Csql/DMLStmt/uniquekeyviolation.c new file mode 100644 index 00000000..d8b671b5 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/uniquekeyviolation.c @@ -0,0 +1,201 @@ +/* + Unique key violation test + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP); + create index idxbigint on t1(f4); + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); + INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02'); Insertion should fail + UPDATE t1 SET f4=1111 WHERE f4=2222; Should fail + select * from t1; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); + + printf("create index idxbigint on t1(f4) unique;\n"); + strcpy(statement,"create index idxbigint on t1(f4) unique;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + stmt->free(); + + +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n"); + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');\n"); + stmt->prepare("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(2,22,333,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');\n"); + stmt->prepare("INSERT INTO t1 VALUES(2,22,333,2222,'CSQL2',22.22,2222.22,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + rv = stmt->execute(rows); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 8; } + printf("Insertion of duplicate record failed\n"); + con->commit(); + stmt->free(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + float f6var; + double f7var; + Date f8var; + Time f9var; + TimeStamp f10var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 9; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 10; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(float)=NULL | "); + else printf("f6(float)=%f | ", f6var); + if(stmt->isFldNull(7)) printf("f7(double)=NULL | "); + else printf("f7(double)=%lf | ", f7var); + if(stmt->isFldNull(8)) printf("f8(date)=NULL | "); + else printf("f8(date)=%02d-%02d-%02d | ", f8var.year(),f8var.month(),f8var.dayOfMonth()); + if(stmt->isFldNull(9)) printf("f9(time)=NULL | "); + else printf("f9(time)=%02d:%02d:%02d | ", f9var.hours(),f9var.minutes(),f9var.seconds()); + if(stmt->isFldNull(10)) printf("f10(timestamp)=NULL | "); + else printf("f10(timestamp)=%d-%d-%d %d:%d:%d | ", f10var.year(),f10var.month(),f10var.dayOfMonth(),f10var.hours(),f10var.minutes(),f10var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Updating records. + con->beginTrans(); + printf("UPDATE t1 SET f4=1111 WHERE f4=2222;\n"); + strcpy(statement,"UPDATE t1 SET f4=1111 WHERE f4=2222;"); + rv = stmt->prepare(statement); + if(rv==OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("Update Failed due to unique key can not be updated\n"); + con->commit(); + stmt->free(); + +//Fetching records after update + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 13; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 14; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(float)=NULL | "); + else printf("f6(float)=%f | ", f6var); + if(stmt->isFldNull(7)) printf("f7(double)=NULL | "); + else printf("f7(double)=%lf | ", f7var); + if(stmt->isFldNull(8)) printf("f8(date)=NULL | "); + else printf("f8(date)=%02d-%02d-%02d | ", f8var.year(),f8var.month(),f8var.dayOfMonth()); + if(stmt->isFldNull(9)) printf("f9(time)=NULL | "); + else printf("f9(time)=%02d:%02d:%02d | ", f9var.hours(),f9var.minutes(),f9var.seconds()); + if(stmt->isFldNull(10)) printf("f10(timestamp)=NULL | "); + else printf("f10(timestamp)=%d-%d-%d %d:%d:%d | ", f10var.year(),f10var.month(),f10var.dayOfMonth(),f10var.hours(),f10var.minutes(),f10var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 19; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 20; } + printf("Table t1 dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/updisnullisnotnullonalldatatype.c b/test/sqlapi/Csql/DMLStmt/updisnullisnotnullonalldatatype.c new file mode 100644 index 00000000..b0cc08e5 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/updisnullisnotnullonalldatatype.c @@ -0,0 +1,305 @@ +/* + Testing update on all datatypes using is null and is not null operators + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); + Insert 5 records into t1. + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 VALUES(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); + UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f1 IS NULL; + UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f1 IS NOT NULL; + UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2 IS NULL; + UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f2 IS NOT NULL; + UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f3 IS NULL; + UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f3 IS NOT NULL; + UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4 IS NULL; + UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f4 IS NOT NULL; + UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f5 IS NULL; + UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f5 IS NOT NULL; + UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6 IS NULL; + UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f6 IS NOT NULL; + UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f7 IS NULL; + UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f7 IS NOT NULL; + UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8 IS NULL; + UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f8 IS NOT NULL; + UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f9 IS NULL; + UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f9 IS NOT NULL; + UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10 IS NULL; + UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f10 IS NOT NULL; + UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f11 IS NULL; + UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f11 IS NOT NULL; + SELECT * FROM t1; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after Insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n"); + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("INSERT INTO t1 VALUES(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n"); + stmt->prepare("INSERT INTO t1 VALUES(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f1 IS NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f1 IS NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f1 IS NOT NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f1 IS NOT NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2 IS NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2 IS NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f3 IS NOT NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f3 IS NOT NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4 IS NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4 IS NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f4 IS NOT NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f4 IS NOT NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f5 IS NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f5 IS NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f5 IS NOT NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f5 IS NOT NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6 IS NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6 IS NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f6 IS NOT NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f6 IS NOT NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f7 IS NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f7 IS NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f7 IS NOT NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f7 IS NOT NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8 IS NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8 IS NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f8 IS NOT NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f8 IS NOT NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f9 IS NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f9 IS NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f9 IS NOT NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f9 IS NOT NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10 IS NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10 IS NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f10 IS NOT NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f10 IS NOT NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f11 IS NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f11 IS NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f11 IS NOT NULL;\n"); + stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f11 IS NOT NULL;"); + stmt->execute(rows); + con->commit(); + stmt->free(); + +//Fetching records after update + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 9; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/updlogicalonalldatatype.c b/test/sqlapi/Csql/DMLStmt/updlogicalonalldatatype.c new file mode 100644 index 00000000..4cfa9a61 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/updlogicalonalldatatype.c @@ -0,0 +1,240 @@ +/* + Testing update on all datatypes using logical operators + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); + Insert 5 records into t1. + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02'); + INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03'); + INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04'); + INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05'); + UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB1', f6='LAKSHYA_BANGALORE1', f7=f7+100, f8=f8+10000,f9='2001-01-11', f10='01:01:11', f11='2001-01-11 01:01:11' WHERE f1=1 and f2=11 and f3=111 and f4=1111; + UPDATE t1 SET f1=f1+20, f2=f2+200, f3=f3+2000, f4=f4+20000, f5='CSQLMMDB2', f6='LAKSHYA_BANGALORE2', f7=f7+200, f8=f8+20000,f9='2002-02-12', f10='02:02:12', f11='2002-02-12 02:02:12' WHERE f3=222 and f5='CSQL2' and f6<='LAKSHYA2'; + UPDATE t1 SET f1=f1+30, f2=f2+300, f3=f3+3000, f4=f4+30000, f5='CSQLMMDB3', f6='LAKSHYA_BANGALORE3', f7=f7+300, f8=f8+30000,f9='2003-03-13', f10='03:03:13', f11='2003-03-13 03:03:13' WHERE f3<=333 and f6<='LAKSHYA4' and (f3 = 333 or f3 = 2222); + UPDATE t1 SET f1=f1+40, f2=f2+400, f3=f3+4000, f4=f4+40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=f7+400, f8=f8+40000,f9='2004-04-14', f10='04:04:14', f11='2004-04-14 04:04:14' WHERE f3<=3333 and f6<='LAKSHYA6' and not(f3 = 3333 or f3 = 555) and (f6 = 'LAKSHYA4' or f6='LAKSHYA_BANGALORE3' or f9='2004/4/4'); + UPDATE t1 SET f1=f1+50, f2=f2+500, f3=f3+5000, f4=f4+50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=f7+500, f8=f8+50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE f1=5 and f2=55 and f3=555 and f4=5555 and f5='CSQL5' and f6='LAKSHYA5' and f7=55 and f8=5555 and f9='2005/05/05' and f10='05:05:05' and f11='2005/05/05 05:05:05'; + UPDATE t1 SET f1=50, f2=500, f3=5000, f4=50000, f5='CSQLMMDB50', f6='LAKSHYA_BANGALORE50', f7=500, f8=50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE f3=5555 or f4=44444 or f6='LAKSHYA_BANGALORE3' or f8=22222 or f11='2001/01/11 01:01:11'; + SELECT * FROM t1; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n"); + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02');\n"); + stmt->prepare("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03');\n"); + stmt->prepare("INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04');\n"); + stmt->prepare("INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05');\n"); + stmt->prepare("INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Updating records. + con->beginTrans(); + printf("UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB1', f6='LAKSHYA_BANGALORE1', f7=f7+100, f8=f8+10000,f9='2001-01-11', f10='01:01:11', f11='2001-01-11 01:01:11' WHERE f1=1 and f2=11 and f3=111 and f4=1111;\n"); + strcpy(statement,"UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB1', f6='LAKSHYA_BANGALORE1', f7=f7+100, f8=f8+10000,f9='2001-01-11', f10='01:01:11', f11='2001-01-11 01:01:11' WHERE f1=1 and f2=11 and f3=111 and f4=1111;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; } + printf("UPDATE t1 SET f1=f1+20, f2=f2+200, f3=f3+2000, f4=f4+20000, f5='CSQLMMDB2', f6='LAKSHYA_BANGALORE2', f7=f7+200, f8=f8+20000,f9='2002-02-12', f10='02:02:12', f11='2002-02-12 02:02:12' WHERE f3=222 and f5='CSQL2' and f6<='LAKSHYA2';\n"); + strcpy(statement,"UPDATE t1 SET f1=f1+20, f2=f2+200, f3=f3+2000, f4=f4+20000, f5='CSQLMMDB2', f6='LAKSHYA_BANGALORE2', f7=f7+200, f8=f8+20000,f9='2002-02-12', f10='02:02:12', f11='2002-02-12 02:02:12' WHERE f3=222 and f5='CSQL2' and f6<='LAKSHYA2';"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + printf("UPDATE t1 SET f1=f1+30, f2=f2+300, f3=f3+3000, f4=f4+30000, f5='CSQLMMDB3', f6='LAKSHYA_BANGALORE3', f7=f7+300, f8=f8+30000,f9='2003-03-13', f10='03:03:13', f11='2003-03-13 03:03:13' WHERE f3<=333 and f6<='LAKSHYA4' and (f3 = 333 or f3 = 2222);\n"); + strcpy(statement,"UPDATE t1 SET f1=f1+30, f2=f2+300, f3=f3+3000, f4=f4+30000, f5='CSQLMMDB3', f6='LAKSHYA_BANGALORE3', f7=f7+300, f8=f8+30000,f9='2003-03-13', f10='03:03:13', f11='2003-03-13 03:03:13' WHERE f3<=333 and f6<='LAKSHYA4' and (f3 = 333 or f3 = 2222);"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + printf("UPDATE t1 SET f1=f1+40, f2=f2+400, f3=f3+4000, f4=f4+40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=f7+400, f8=f8+40000,f9='2004-04-14', f10='04:04:14', f11='2004-04-14 04:04:14' WHERE f3<=3333 and f6<='LAKSHYA6' and not(f3 = 3333 or f3 = 555) and (f6 = 'LAKSHYA4' or f6='LAKSHYA_BANGALORE3' or f9='2004/4/4');\n"); + strcpy(statement,"UPDATE t1 SET f1=f1+40, f2=f2+400, f3=f3+4000, f4=f4+40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=f7+400, f8=f8+40000,f9='2004-04-14', f10='04:04:14', f11='2004-04-14 04:04:14' WHERE f3<=3333 and f6<='LAKSHYA6' and not(f3 = 3333 or f3 = 555) and (f6 = 'LAKSHYA4' or f6='LAKSHYA_BANGALORE3' or f9='2004/4/4');"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("UPDATE t1 SET f1=f1+50, f2=f2+500, f3=f3+5000, f4=f4+50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=f7+500, f8=f8+50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE f1=5 and f2=55 and f3=555 and f4=5555 and f5='CSQL5' and f6='LAKSHYA5' and f7=55 and f8=5555 and f9='2005/05/05' and f10='05:05:05' and f11='2005/05/05 05:05:05';\n"); + strcpy(statement,"UPDATE t1 SET f1=f1+50, f2=f2+500, f3=f3+5000, f4=f4+50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=f7+500, f8=f8+50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE f1=5 and f2=55 and f3=555 and f4=5555 and f5='CSQL5' and f6='LAKSHYA5' and f7=55 and f8=5555 and f9='2005/05/05' and f10='05:05:05' and f11='2005/05/05 05:05:05';"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 14; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 15; } + printf("UPDATE t1 SET f1=50, f2=500, f3=5000, f4=50000, f5='CSQLMMDB50', f6='LAKSHYA_BANGALORE50', f7=500, f8=50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE f3=5555 or f4=44444 or f6='LAKSHYA_BANGALORE3' or f8=22222 or f11='2001/01/11 01:01:11';\n"); + strcpy(statement,"UPDATE t1 SET f1=50, f2=500, f3=5000, f4=50000, f5='CSQLMMDB50', f6='LAKSHYA_BANGALORE50', f7=500, f8=50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE f3=5555 or f4=44444 or f6='LAKSHYA_BANGALORE3' or f8=22222 or f11='2001/01/11 01:01:11';"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 16; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 17; } + con->commit(); + stmt->free(); + +//Fetching records after Update + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 18; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 19; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/updrangeonalldatatype.c b/test/sqlapi/Csql/DMLStmt/updrangeonalldatatype.c new file mode 100644 index 00000000..7a645cb1 --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/updrangeonalldatatype.c @@ -0,0 +1,221 @@ +/* + Testing update on all datatypes using in-between-like operators + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); + Insert 5 records into t1. + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02'); + INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03'); + INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04'); + INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05'); + UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB1', f6='LAKSHYA_BANGALORE1', f7=f7+100, f8=f8+10000,f9='2001-01-11', f10='01:01:11', f11='2001-01-11 01:01:11' WHERE f1 in (20,1,30) and (f2 between 10 and 12) and f3 in (110,111) and (f4 between 1000 and 1112); + UPDATE t1 SET f1=f1+40, f2=f2+400, f3=f3+4000, f4=f4+40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=f7+400, f8=f8+40000,f9='2004-04-14', f10='04:04:14', f11='2004-04-14 04:04:14' WHERE f3<=3333 and f6<='LAKSHYA6' and not(f3 = 3333 or f3 = 555) and (f6 = 'LAKSHYA4' or f6='LAKSHYA_BANGALORE3') or f9 in ('2004/4/4','2002-02-02','2001-01-01'); + UPDATE t1 SET f1=f1+50, f2=f2+500, f3=f3+5000, f4=f4+50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=f7+500, f8=f8+50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE (f1=5 and f2=55 and f3=555 and f4=5555 and f5='CSQL5' and f6 like 'LAKSHYA%' and f7=55 and f8=5555 and f9='2005/05/05' and f10 in ('05:05:05')) or f11 in ('2005/05/05 05:05:05','2004-04-14 04:04:14'); + SELECT * FROM t1; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + printf("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n"); + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02');\n"); + stmt->prepare("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03');\n"); + stmt->prepare("INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04');\n"); + stmt->prepare("INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04');"); + stmt->execute(rows); + printf("INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05');\n"); + stmt->prepare("INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Updating records. + con->beginTrans(); + printf("UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB1', f6='LAKSHYA_BANGALORE1', f7=f7+100, f8=f8+10000,f9='2001-01-11', f10='01:01:11', f11='2001-01-11 01:01:11' WHERE f1 in (20,1,30) and (f2 between 10 and 12) and f3 in (110,111) and (f4 between 1000 and 1112);\n"); + strcpy(statement,"UPDATE t1 SET f1=f1+10, f2=f2+100, f3=f3+1000, f4=f4+10000, f5='CSQLMMDB1', f6='LAKSHYA_BANGALORE1', f7=f7+100, f8=f8+10000,f9='2001-01-11', f10='01:01:11', f11='2001-01-11 01:01:11' WHERE f1 in (20,1,30) and (f2 between 10 and 12) and f3 in (110,111) and (f4 between 1000 and 1112);"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 9; } + + con->beginTrans(); + printf("UPDATE t1 SET f1=f1+40, f2=f2+400, f3=f3+4000, f4=f4+40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=f7+400, f8=f8+40000,f9='2004-04-14', f10='04:04:14', f11='2004-04-14 04:04:14' WHERE f3<=3333 and f6<='LAKSHYA6' and not(f3 = 3333 or f3 = 555) and (f6 = 'LAKSHYA4' or f6='LAKSHYA_BANGALORE3') or f9 in ('2004/4/4','2002-02-02','2001-01-01');\n"); + strcpy(statement,"UPDATE t1 SET f1=f1+40, f2=f2+400, f3=f3+4000, f4=f4+40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=f7+400, f8=f8+40000,f9='2004-04-14', f10='04:04:14', f11='2004-04-14 04:04:14' WHERE f3<=3333 and f6<='LAKSHYA6' and not(f3 = 3333 or f3 = 555) and (f6 = 'LAKSHYA4' or f6='LAKSHYA_BANGALORE3') or f9 in ('2004/4/4','2002-02-02','2001-01-01');"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; } + + con->beginTrans(); + printf("UPDATE t1 SET f1=f1+50, f2=f2+500, f3=f3+5000, f4=f4+50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=f7+500, f8=f8+50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE (f1=5 and f2=55 and f3=555 and f4=5555 and f5='CSQL5' and f6 like 'LAKSHYA_' and f7=55 and f8=5555 and f9='2005/05/05' and f10 in ('05:05:05')) or f11 in ('2005/05/05 05:05:05','2004-04-14 04:04:14');\n"); + strcpy(statement,"UPDATE t1 SET f1=f1+50, f2=f2+500, f3=f3+5000, f4=f4+50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=f7+500, f8=f8+50000,f9='2005-05-15', f10='05:05:15', f11='2005-05-15 05:05:15' WHERE (f1=5 and f2=55 and f3=555 and f4=5555 and f5='CSQL5' and f6 like 'LAKSHYA_' and f7=55 and f8=5555 and f9='2005/05/05' and f10 in ('05:05:05')) or f11 in ('2005/05/05 05:05:05','2004-04-14 04:04:14');"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + +//Fetching records after Update + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 14; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 15; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | "); + else printf("f1(tinyint)=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | "); + else printf("f2(smallint)=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3(int)=NULL | "); + else printf("f3(int)=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | "); + else printf("f4(bigint)=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5(char)=NULL | "); + else printf("f5(char)=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | "); + else printf("f6(varchar)=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7(float)=NULL | "); + else printf("f7(float)=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8(double)=NULL | "); + else printf("f8(double)=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9(date)=NULL | "); + else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10(time)=NULL | "); + else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | "); + else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 16; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 17; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/DMLStmt/updrelationalonalldatatype.c b/test/sqlapi/Csql/DMLStmt/updrelationalonalldatatype.c new file mode 100644 index 00000000..7784f5db --- /dev/null +++ b/test/sqlapi/Csql/DMLStmt/updrelationalonalldatatype.c @@ -0,0 +1,597 @@ +/* + Test Update conditionally using relational operators on all datatypes. + CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP); + Insert 5 records into t1. + INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01'); + INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02'); + INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03'); + INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04'); + INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05'); + INSERT INTO t1 VALUES(6,66,666,6666,'CSQL6','LAKSHYA6',66.00,6666.00,'2006-06-06','06:06:06','2006-06-06 06:06:06'); + INSERT INTO t1 VALUES(7,77,777,7777,'CSQL7','LAKSHYA7',77.00,7777.00,'2007-07-07','07:07:07','2007-07-07 07:07:07'); + INSERT INTO t1 VALUES(8,88,888,8888,'CSQL8','LAKSHYA8',88.00,8888.00,'2008-08-08','08:08:08','2008-08-08 08:08:08'); + INSERT INTO t1 VALUES(9,99,999,9999,'CSQL9','LAKSHYA9',99.00,9999.00,'2009-09-09','09:09:09','2009-09-09 09:09:09'); + + UPDATE t1 SET f1=10, f2=100, f3=1000, f4=10000, f5='CSQLMMDB', f6='LAKSHYA_BANGALORE', f7=100, f8=10000,f9='2009-01-10', f10='01:01:10', f11='2009-01-10 01:01:10' WHERE f1=1; + UPDATE t1 SET f1=20, f2=200, f3=2000, f4=20000, f5='CSQLMMDB2', f6='LAKSHYA_BANGALORE2', f7=200, f8=20000,f9='2009-01-11', f10='01:01:11', f11='2009-01-11 01:01:11' WHERE f2=100; + UPDATE t1 SET f1=30, f2=300, f3=3000, f4=30000, f5='CSQLMMDB3', f6='LAKSHYA_BANGALORE3', f7=300, f8=30000,f9='2009-01-12', f10='01:01:12', f11='2009-01-12 01:01:12' WHERE f3=2000; + UPDATE t1 SET f1=40, f2=400, f3=4000, f4=40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=400, f8=40000,f9='2009-01-13', f10='01:01:13', f11='2009-01-13 01:01:13' WHERE f4=30000; + UPDATE t1 SET f1=50, f2=500, f3=5000, f4=50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=500, f8=50000,f9='2009-01-14', f10='01:01:14', f11='2009-01-14 01:01:14' WHERE f5='CSQLMMDB4'; + UPDATE t1 SET f1=60, f2=600, f3=6000, f4=60000, f5='CSQLMMDB6', f6='LAKSHYA_BANGALORE6', f7=600, f8=60000,f9='2009-01-16', f10='01:01:16', f11='2009-01-16 01:01:16' WHERE f6='LAKSHYA_BANGALORE5'; + UPDATE t1 SET f1=70, f2=700, f3=7000, f4=70000, f5='CSQLMMDB7', f6='LAKSHYA_BANGALORE7', f7=700, f8=70000,f9='2009-01-17', f10='01:01:17', f11='2009-01-17 01:01:17' WHERE f7=600; + UPDATE t1 SET f1=80, f2=800, f3=8000, f4=80000, f5='CSQLMMDB8', f6='LAKSHYA_BANGALORE8', f7=800, f8=80000,f9='2009-01-18', f10='01:01:18', f11='2009-01-18 01:01:18' WHERE f8=70000; + UPDATE t1 SET f1=90, f2=900, f3=9000, f4=90000, f5='CSQLMMDB9', f6='LAKSHYA_BANGALORE9', f7=900, f8=90000,f9='2009-01-19', f10='01:01:19', f11='2009-01-19 01:01:19' WHERE f9='2009-01-18'; + UPDATE t1 SET f1=100, f2=1000, f3=10000, f4=100000, f5='CSQLMMDB10', f6='LAKSHYA_BANGALORE10', f7=1000, f8=100000,f9='2009-01-20', f10='01:01:20', f11='2009-01-20 01:01:20' WHERE f10='01:01:19'; + UPDATE t1 SET f1=110, f2=1100, f3=11000, f4=110000, f5='CSQLMMDB11', f6='LAKSHYA_BANGALORE11', f7=1100, f8=110000,f9='2009-09-09', f10='09:09:09', f11='2009-09-09 09:09:09' WHERE f11='2009-01-20 01:01:20'; + + UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f1<3; + UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2<3; + UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f3<3; + UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4<3; + UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f5<'CSQL3'; + UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6<'LAKSHYA3'; + UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f7<3; + UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8<3; + UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f9<'2003/03/03'; + UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10<'03:03:03'; + UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f11<'2003/03/03 03:03:03'; + + UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f1<=4; + UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f2<=4; + UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f3<=4; + UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f4<=4; + UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f5<='CSQL4'; + UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f6<='LAKSHYA4'; + UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f7<=4; + UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f8<=4; + UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f9<='2004-04-04'; + UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f10<='04:04:04'; + UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f11<='2004-04-04 04:04:04'; + + UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f1!=7; + UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f2!=77; + UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f3!=777; + UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f4!=7777; + UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f5!='CSQL7'; + UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f6!='LAKSHYA7'; + UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f7!=77.000000; + UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f8!=7777.000000; + UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f9!='2007/7/7'; + UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f10!='07:07:07'; + UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f11!='2007/07/07 07:07:07'; + SELECT * FROM t1; +*/ +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv !=OK) { + delete con; + return 1; + } + printf("Connection opened\n"); + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); +//Creating Table + char statement[400]; + printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);\n"); + strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; } + stmt->free(); +// Show all tables + strcpy(statement,"GETALLTABLES;"); + rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; } + stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; } + while(stmt->next() !=NULL) { + printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx) + } + stmt->free(); + +//Inserting Records + con->beginTrans(); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(2,22,222,2222,'CSQL2','LAKSHYA2',22.00,2222.00,'2002-02-02','02:02:02','2002-02-02 02:02:02');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(3,33,333,3333,'CSQL3','LAKSHYA3',33.00,3333.00,'2003-03-03','03:03:03','2003-03-03 03:03:03');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(4,44,444,4444,'CSQL4','LAKSHYA4',44.00,4444.00,'2004-04-04','04:04:04','2004-04-04 04:04:04');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(5,55,555,5555,'CSQL5','LAKSHYA5',55.00,5555.00,'2005-05-05','05:05:05','2005-05-05 05:05:05');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(6,66,666,6666,'CSQL6','LAKSHYA6',66.00,6666.00,'2006-06-06','06:06:06','2006-06-06 06:06:06');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(7,77,777,7777,'CSQL7','LAKSHYA7',77.00,7777.00,'2007-07-07','07:07:07','2007-07-07 07:07:07');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(8,88,888,8888,'CSQL8','LAKSHYA8',88.00,8888.00,'2008-08-08','08:08:08','2008-08-08 08:08:08');"); + stmt->execute(rows); + rows=0; + stmt->prepare("INSERT INTO t1 VALUES(9,99,999,9999,'CSQL9','LAKSHYA9',99.00,9999.00,'2009-09-09','09:09:09','2009-09-09 09:09:09');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + + char f1var; + short int f2var; + int f3var; + long long f4var; + char f5var[20]; + char f6var[32]; + float f7var; + double f8var; + Date f9var; + Time f10var; + TimeStamp f11var; + +//Fetching records after insert + printf("SELECT * FROM t1;\n"); + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + int count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(=NULL | "); + else printf("f2(=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Updating records. + con->beginTrans(); + printf("UPDATE t1 SET f1=10, f2=100, f3=1000, f4=10000, f5='CSQLMMDB', f6='LAKSHYA_BANGALORE', f7=100, f8=10000,f9='2009-01-10', f10='01:01:10', f11='2009-01-10 01:01:10' WHERE f1=1;\n"); + strcpy(statement,"UPDATE t1 SET f1=10, f2=100, f3=1000, f4=10000, f5='CSQLMMDB', f6='LAKSHYA_BANGALORE', f7=100, f8=10000,f9='2009-01-10', f10='01:01:10', f11='2009-01-10 01:01:10' WHERE f1=1;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=20, f2=200, f3=2000, f4=20000, f5='CSQLMMDB2', f6='LAKSHYA_BANGALORE2', f7=200, f8=20000,f9='2009-01-11', f10='01:01:11', f11='2009-01-11 01:01:11' WHERE f2=100;\n"); + strcpy(statement,"UPDATE t1 SET f1=20, f2=200, f3=2000, f4=20000, f5='CSQLMMDB2', f6='LAKSHYA_BANGALORE2', f7=200, f8=20000,f9='2009-01-11', f10='01:01:11', f11='2009-01-11 01:01:11' WHERE f2=100;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=30, f2=300, f3=3000, f4=30000, f5='CSQLMMDB3', f6='LAKSHYA_BANGALORE3', f7=300, f8=30000,f9='2009-01-12', f10='01:01:12', f11='2009-01-12 01:01:12' WHERE f3=2000;\n"); + strcpy(statement,"UPDATE t1 SET f1=30, f2=300, f3=3000, f4=30000, f5='CSQLMMDB3', f6='LAKSHYA_BANGALORE3', f7=300, f8=30000,f9='2009-01-12', f10='01:01:12', f11='2009-01-12 01:01:12' WHERE f3=2000;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=40, f2=400, f3=4000, f4=40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=400, f8=40000,f9='2009-01-13', f10='01:01:13', f11='2009-01-13 01:01:13' WHERE f4=30000;\n"); + strcpy(statement,"UPDATE t1 SET f1=40, f2=400, f3=4000, f4=40000, f5='CSQLMMDB4', f6='LAKSHYA_BANGALORE4', f7=400, f8=40000,f9='2009-01-13', f10='01:01:13', f11='2009-01-13 01:01:13' WHERE f4=30000;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=50, f2=500, f3=5000, f4=50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=500, f8=50000,f9='2009-01-14', f10='01:01:14', f11='2009-01-14 01:01:14' WHERE f5='CSQLMMDB4';\n"); + strcpy(statement,"UPDATE t1 SET f1=50, f2=500, f3=5000, f4=50000, f5='CSQLMMDB5', f6='LAKSHYA_BANGALORE5', f7=500, f8=50000,f9='2009-01-14', f10='01:01:14', f11='2009-01-14 01:01:14' WHERE f5='CSQLMMDB4';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=60, f2=600, f3=6000, f4=60000, f5='CSQLMMDB6', f6='LAKSHYA_BANGALORE6', f7=600, f8=60000,f9='2009-01-16', f10='01:01:16', f11='2009-01-16 01:01:16' WHERE f6='LAKSHYA_BANGALORE5';\n"); + strcpy(statement,"UPDATE t1 SET f1=60, f2=600, f3=6000, f4=60000, f5='CSQLMMDB6', f6='LAKSHYA_BANGALORE6', f7=600, f8=60000,f9='2009-01-16', f10='01:01:16', f11='2009-01-16 01:01:16' WHERE f6='LAKSHYA_BANGALORE5';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=70, f2=700, f3=7000, f4=70000, f5='CSQLMMDB7', f6='LAKSHYA_BANGALORE7', f7=700, f8=70000,f9='2009-01-17', f10='01:01:17', f11='2009-01-17 01:01:17' WHERE f7=600;\n"); + strcpy(statement,"UPDATE t1 SET f1=70, f2=700, f3=7000, f4=70000, f5='CSQLMMDB7', f6='LAKSHYA_BANGALORE7', f7=700, f8=70000,f9='2009-01-17', f10='01:01:17', f11='2009-01-17 01:01:17' WHERE f7=600;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=80, f2=800, f3=8000, f4=80000, f5='CSQLMMDB8', f6='LAKSHYA_BANGALORE8', f7=800, f8=80000,f9='2009-01-18', f10='01:01:18', f11='2009-01-18 01:01:18' WHERE f8=70000;\n"); + strcpy(statement,"UPDATE t1 SET f1=80, f2=800, f3=8000, f4=80000, f5='CSQLMMDB8', f6='LAKSHYA_BANGALORE8', f7=800, f8=80000,f9='2009-01-18', f10='01:01:18', f11='2009-01-18 01:01:18' WHERE f8=70000;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=90, f2=900, f3=9000, f4=90000, f5='CSQLMMDB9', f6='LAKSHYA_BANGALORE9', f7=900, f8=90000,f9='2009-01-19', f10='01:01:19', f11='2009-01-19 01:01:19' WHERE f9='2009-01-18';\n"); + strcpy(statement,"UPDATE t1 SET f1=90, f2=900, f3=9000, f4=90000, f5='CSQLMMDB9', f6='LAKSHYA_BANGALORE9', f7=900, f8=90000,f9='2009-01-19', f10='01:01:19', f11='2009-01-19 01:01:19' WHERE f9='2009-01-18';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=100, f2=1000, f3=10000, f4=100000, f5='CSQLMMDB10', f6='LAKSHYA_BANGALORE10', f7=1000, f8=100000,f9='2009-01-20', f10='01:01:20', f11='2009-01-20 01:01:20' WHERE f10='01:01:19';\n"); + strcpy(statement,"UPDATE t1 SET f1=100, f2=1000, f3=10000, f4=100000, f5='CSQLMMDB10', f6='LAKSHYA_BANGALORE10', f7=1000, f8=100000,f9='2009-01-20', f10='01:01:20', f11='2009-01-20 01:01:20' WHERE f10='01:01:19';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=110, f2=1100, f3=11000, f4=110000, f5='CSQLMMDB11', f6='LAKSHYA_BANGALORE11', f7=1100, f8=110000,f9='2009-09-09', f10='09:09:09', f11='2009-09-09 09:09:09' WHERE f11='2009-01-20 01:01:20';\n"); + strcpy(statement,"UPDATE t1 SET f1=110, f2=1100, f3=11000, f4=110000, f5='CSQLMMDB11', f6='LAKSHYA_BANGALORE11', f7=1100, f8=110000,f9='2009-09-09', f10='09:09:09', f11='2009-09-09 09:09:09' WHERE f11='2009-01-20 01:01:20';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + con->commit(); + stmt->free(); + +//Fetching records + printf("SELECT * FROM t1;\n"); + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(=NULL | "); + else printf("f2(=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Testing "<" operator + printf("UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f1<3;\n"); + strcpy(statement,"UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f1<3;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + + printf("UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2<3;\n"); + strcpy(statement,"UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2<3;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f3<3;\n"); + strcpy(statement,"UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f3<3;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4<3;\n"); + strcpy(statement,"UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4<3;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f5<'CSQL3';\n"); + strcpy(statement,"UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f5<'CSQL3';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6<'LAKSHYA3';\n"); + strcpy(statement,"UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6<'LAKSHYA3';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf(" UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f7<3;\n"); + strcpy(statement," UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f7<3;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8<3;\n"); + strcpy(statement,"UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8<3;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f9<'2003/03/03';\n"); + strcpy(statement,"UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f9<'2003/03/03';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10<'03:03:03';\n"); + strcpy(statement,"UPDATE t1 SET f1=2, f2=2, f3=2, f4=2, f5='CSQL2', f6='LAKSHYA2', f7=2, f8=2,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10<'03:03:03';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f11<'2003/03/03 03:03:03';\n"); + strcpy(statement,"UPDATE t1 SET f1=1, f2=1, f3=1, f4=1, f5='CSQL1', f6='LAKSHYA1', f7=1, f8=1,f9='2001-01-01', f10='01:01:01', f11='2001-01-01 01:01:01' WHERE f11<'2003/03/03 03:03:03';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + +//Fetching records + printf("SELECT * FROM t1;\n"); + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(=NULL | "); + else printf("f2(=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + + +//Testing "<=" operator + printf("UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f1<=4;\n"); + strcpy(statement,"UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f1<=4;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f2<=4;\n"); + strcpy(statement,"UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f2<=4;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f3<=4;\n"); + strcpy(statement,"UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f3<=4;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f4<=4;\n"); + strcpy(statement,"UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f4<=4;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f5<='CSQL4';\n"); + strcpy(statement,"UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f5<='CSQL4';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f6<='LAKSHYA4';\n"); + strcpy(statement,"UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f6<='LAKSHYA4';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f7<=4;\n"); + strcpy(statement,"UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f7<=4;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f8<=4;\n"); + strcpy(statement,"UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f8<=4;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f9<='2004-04-04';\n"); + strcpy(statement,"UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f9<='2004-04-04';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f10<='04:04:04';\n"); + strcpy(statement,"UPDATE t1 SET f1=4, f2=4, f3=4, f4=4, f5='CSQL4', f6='LAKSHYA4', f7=4, f8=4,f9='2004-04-04', f10='04:04:04', f11='2004-04-04 04:04:04' WHERE f10<='04:04:04';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f11<='2004-04-04 04:04:04';\n"); + strcpy(statement,"UPDATE t1 SET f1=3, f2=3, f3=3, f4=3, f5='CSQL3', f6='LAKSHYA3', f7=3, f8=3,f9='2003-03-03', f10='03:03:03', f11='2003-03-03 03:03:03' WHERE f11<='2004-04-04 04:04:04';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + +//Fetching records + printf("SELECT * FROM t1;\n"); + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(=NULL | "); + else printf("f2(=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Testing "!=" operator + printf("UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f1!=7;\n"); + strcpy(statement,"UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f1!=7;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f2!=77\n"); + strcpy(statement,"UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f2!=77"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f3!=777;\n"); + strcpy(statement,"UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f3!=777;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f4!=7777;\n"); + strcpy(statement,"UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f4!=7777;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f5!='CSQL7';\n"); + strcpy(statement,"UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f5!='CSQL7';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f6!='LAKSHYA7';\n"); + strcpy(statement,"UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f6!='LAKSHYA7';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f7!=77.000000;\n"); + strcpy(statement,"UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f7!=77.000000;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f8!=7777.000000;\n"); + strcpy(statement,"UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f8!=7777.000000;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f9!='2007/7/7';\n"); + strcpy(statement,"UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f9!='2007/7/7';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f10!='07:07:07';\n"); + strcpy(statement,"UPDATE t1 SET f1=80, f2=80, f3=80, f4=80, f5='CSQL80', f6='LAKSHYA80', f7=80, f8=80,f9='2080-08-08', f10='08:08:08', f11='2080-08-08 08:08:08' WHERE f10!='07:07:07';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + printf("UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f11!='2007/07/07 07:07:07';\n"); + strcpy(statement,"UPDATE t1 SET f1=70, f2=70, f3=70, f4=70, f5='CSQL70', f6='LAKSHYA70', f7=70, f8=70,f9='2070-07-07', f10='07:07:07', f11='2070-07-07 07:07:07' WHERE f11!='2007/07/07 07:07:07';"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + +//Fetching records + printf("SELECT * FROM t1;\n"); + strcpy(statement,"SELECT * FROM t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 6; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,&f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,f5var); + stmt->bindField(6,f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,&f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 7; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("f1=NULL | "); + else printf("f1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("f2(=NULL | "); + else printf("f2(=%d | ", f2var); + if(stmt->isFldNull(3)) printf("f3=NULL | "); + else printf("f3=%d | ", f3var); + if(stmt->isFldNull(4)) printf("f4=NULL | "); + else printf("f4=%lld | ", f4var); + if(stmt->isFldNull(5)) printf("f5=NULL | "); + else printf("f5=%s | ", f5var); + if(stmt->isFldNull(6)) printf("f6=NULL | "); + else printf("f6=%s | ", f6var); + if(stmt->isFldNull(7)) printf("f7=NULL | "); + else printf("f7=%f | ", f7var); + if(stmt->isFldNull(8)) printf("f8=NULL | "); + else printf("f8=%lf | ", f8var); + if(stmt->isFldNull(9)) printf("f9=NULL | "); + else printf("f9=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth()); + if(stmt->isFldNull(10)) printf("f10=NULL | "); + else printf("f10=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds()); + if(stmt->isFldNull(11)) printf("f11=NULL | "); + else printf("f11=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds()); + printf("\n"); + count++; + } + stmt->free(); + rv = con->commit(); + printf("%d rows selected\n",count); + +//Droping table + strcpy(statement,"DROP TABLE t1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 12; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 13; } + printf("Table dropped\n"); + stmt->free(); + con->disconnect(); + printf("Connection Closed\n"); + + delete stmt; delete con; + return 0; +} + diff --git a/test/sqlapi/Csql/Isolation/Makefile b/test/sqlapi/Csql/Isolation/Makefile new file mode 100644 index 00000000..082d710b --- /dev/null +++ b/test/sqlapi/Csql/Isolation/Makefile @@ -0,0 +1,107 @@ +OSNAME = $(shell uname -s) +PlatForm=notsupported +ifeq ($(OSNAME), SunOS) + CPlus = CC + CPlusFlags = -O2 -w $(COMPILER_FLAG) + SYSLIBS=-ldl -lnsl -lsocket -lposix4 + PlatForm=supported +endif +ifeq ($(OSNAME), Linux) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif +ifeq ($(OSNAME), FreeBSD) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif + + +INCL= -I$(CSQL_INSTALL_ROOT)/include -I../../../../include +ifeq ($(BUILDTYPE), MMDB) +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcsqlsqlnw -lcsqlsqlnw +else +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcacheload -lcsqlsqlnw -lcsqlgw -lcsqlsqlnw -lcsqlodbcadapter +endif + +TARGETS = \ + test001 test002 test003 test004 test005\ + test006 test007 test008 test009 test010\ + test011 test012 test013 test014 test015\ + test016 test017 test018 test019 test020\ + test021 test022 test023 test024 test025\ + test026 test027 test028 test029 test030\ + +ifeq ($(PlatForm), supported) +all: $(TARGETS) +else +all: + echo "CSQL is not supported on $(OSNAME) platform" +endif + +test001:isotest1.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002:isotest2.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003:isotest3.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004:isotest4.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005:isotest5.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006:isotest6.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test007:isotest7.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test008:isotest8.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test009:isotest9.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test010:isotest10.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test011:isotest1.c common.h + $(CPlus) -DRDUNCOM $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test012:isotest2.c common.h + $(CPlus) -DRDUNCOM $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test013:isotest3.c common.h + $(CPlus) -DRDUNCOM $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test014:isotest4.c common.h + $(CPlus) -DRDUNCOM $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test015:isotest5.c common.h + $(CPlus) -DRDUNCOM $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test016:isotest6.c common.h + $(CPlus) -DRDUNCOM $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test017:isotest7.c common.h + $(CPlus) -DRDUNCOM $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test018:isotest8.c common.h + $(CPlus) -DRDUNCOM $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test019:isotest9.c common.h + $(CPlus) -DRDUNCOM $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test020:isotest10.c common.h + $(CPlus) -DRDUNCOM $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test021:isotest1.c common.h + $(CPlus) -DRDRPT $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test022:isotest2.c common.h + $(CPlus) -DRDRPT $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test023:isotest3.c common.h + $(CPlus) -DRDRPT $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test024:isotest4.c common.h + $(CPlus) -DRDRPT $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test025:isotest5.c common.h + $(CPlus) -DRDRPT $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test026:isotest6.c common.h + $(CPlus) -DRDRPT $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test027:isotest7.c common.h + $(CPlus) -DRDRPT $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test028:isotest8.c common.h + $(CPlus) -DRDRPT $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test029:isotest9.c common.h + $(CPlus) -DRDRPT $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test030:isotest10.c common.h + $(CPlus) -DRDRPT $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) + +clean: + rm -f $(TARGETS) diff --git a/test/sqlapi/Csql/Isolation/common.h b/test/sqlapi/Csql/Isolation/common.h new file mode 100644 index 00000000..fc4e2ea9 --- /dev/null +++ b/test/sqlapi/Csql/Isolation/common.h @@ -0,0 +1,117 @@ +#include +#include +#include + +AbsSqlConnection *createConnection() +{ +#ifdef NETWORK + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetwork); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKADAPTER + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkAdapter); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKGATEWAY + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkGateway); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#else + AbsSqlConnection *con = SqlFactory::createConnection(CSql); +#endif + return con; +} + +AbsSqlStatement *createStatement() +{ +#ifdef NETWORK + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetwork); +#elif defined NETWORKADAPTER + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkAdapter); +#elif defined NETWORKGATEWAY + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkGateway); +#else + AbsSqlStatement *stmt = SqlFactory::createStatement(CSql); +#endif + return stmt; +} + +DbRetVal executeDdlQuery(AbsSqlConnection *conn, AbsSqlStatement *stmt, + char *stmtstr) +{ + DbRetVal rv = OK; + rv = stmt->prepare(stmtstr); + if (rv != OK) return rv; + int rows = 0; + rv = stmt->execute(rows); + if (rv != OK) return rv; + return OK; +} + +DbRetVal insert(AbsSqlStatement *stmt, int val, bool isSleep) +{ + char statement[1024] = "insert into t1 values(?, 'PRABAKARAN');"; + DbRetVal rv = stmt->prepare(statement); + if (rv != OK) return rv; + stmt->setIntParam(1, val); + int rows = 0; + rv = stmt->execute(rows); + if (rv != OK) { return ErrLockTimeOut; } + printf("Inserted tuple : %d %s\n", val, "PRABAKARAN"); + if (isSleep) ::sleep(5); + return OK; +} + +DbRetVal select(AbsSqlStatement *stmt, int val, bool isSleep, bool checkUpd=false) +{ + char statement[1024] = "select * from t1 where f1 = ?;"; + int id = 0; + char name[196]; + DbRetVal rv = stmt->prepare(statement); + if (rv != OK) return rv; + stmt->bindField(1, &id); + stmt->bindField(2, name); + stmt->setIntParam(1, val); + int rows = 0; + rv = stmt->execute(rows); + if (rv != OK) return rv; + void *tuple = stmt->fetch(rv); + if (rv != OK) return rv; + if (tuple == NULL) { + printf("Tuple not found\n"); + return ErrNotFound; + } + printf("ThreadID: %lu Tuple %d %s\n", os::getthrid(), id, name); + if (isSleep) ::sleep(5); + if ( checkUpd && strcmp(name, "KANCHANA") != 0) return ErrUnknown; + return OK; +} + +DbRetVal update(AbsSqlStatement *stmt, int val, bool isSleep, char *updname = NULL) +{ + char statement[1024] = "update t1 set f2 = 'KANCHANA' where f1 = ?;"; + DbRetVal rv = stmt->prepare(statement); + if (rv != OK) return rv; + stmt->setIntParam(1, val); + int rows = 0; + rv = stmt->execute(rows); + if (rv != OK) { return rv; } + printf("ThreadID: %lu Updated Tuple %d %s\n", os::getthrid(), val, "KANCHANA"); + if (isSleep) ::sleep(2); + return OK; +} + +DbRetVal remove(AbsSqlStatement *stmt, int val, bool isSleep) +{ + char statement[1024] = "delete from t1 where f1 = ?;"; + DbRetVal rv = stmt->prepare(statement); + if (rv != OK) return rv; + stmt->setIntParam(1, val); + int rows = 0; + rv = stmt->execute(rows); + if (rv != OK) { return rv; } + printf("ThreadID: %lu Deleted Tuple %d %s\n", os::getthrid(), val, "PRABAKARAN"); + if (isSleep) ::sleep(2); + return OK; +} + diff --git a/test/sqlapi/Csql/Isolation/isotest1.c b/test/sqlapi/Csql/Isolation/isotest1.c new file mode 100644 index 00000000..1c95ee1f --- /dev/null +++ b/test/sqlapi/Csql/Isolation/isotest1.c @@ -0,0 +1,96 @@ +#include "common.h" +//READ_COMMITTED isolation testing +//T1 and T2 both inserting, T2 will fail saying unique key constraint + +void* runTest1(void *p); +void* runTest2(void *p); +int *p1RetVal = NULL; +int *p2RetVal = NULL; +int main() +{ + + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return 1; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + + char statement[1024]="create table t1 (f1 int, f2 char(196), primary key(f1));"; + int ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 1; } + pthread_t thr[2]; + int *status1, *status2; + pthread_create (&thr[0], NULL, &runTest1, NULL); + pthread_create (&thr[1], NULL, &runTest2, NULL); + printf("All threads started\n"); + + pthread_join(thr[0], (void**)&status1); + pthread_join(thr[1], (void**)&status2); + strcpy(statement, "drop table t1;"); + ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 1; } + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + if (*status1 != 0 || *status2 != 0) return 1; + if (p1RetVal) { delete p1RetVal; p1RetVal = NULL; } + if (p2RetVal) { delete p2RetVal; p2RetVal = NULL; } + return 0; +} + +void* runTest1(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +# else + rv = conn->beginTrans(READ_COMMITTED); +# endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p1RetVal = new int(); + *p1RetVal = 0; + + rv = insert(stmt, 100, true); + if (rv != OK) { printf("Test Failed:first thread failed to insert\n"); *p1RetVal = 1; } + + conn->commit(); + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p1RetVal); +} + +void* runTest2(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +# else + rv = conn->beginTrans(READ_COMMITTED); +# endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p2RetVal = new int(); + *p2RetVal = 0; + ::sleep(2); + rv = insert(stmt, 100, false); + if (rv == OK) { printf("Test Failed:second thread inserted\n"); *p2RetVal = 1; } + + rv = conn->commit(); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p2RetVal); +} diff --git a/test/sqlapi/Csql/Isolation/isotest10.c b/test/sqlapi/Csql/Isolation/isotest10.c new file mode 100644 index 00000000..31caf770 --- /dev/null +++ b/test/sqlapi/Csql/Isolation/isotest10.c @@ -0,0 +1,105 @@ +#include "common.h" +//READ_COMMITTED isolation testing +// T1 T2 +// ------------------------- +// Read +// Update +// Read +// T1 second read should fail saying "tuple not found +void* runTest1(void *p); +void* runTest2(void *p); +int *p1RetVal = NULL; +int *p2RetVal = NULL; +int selectDone = 0, updateDone =0, allDone = 0; + +int main() +{ + + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return 1; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + + char statement[1024]="create table t1 (f1 int, f2 char(196), primary key(f1));"; + int ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 1; } + rv = conn->beginTrans(READ_COMMITTED); + if (rv != OK) return 2; + rv = insert(stmt, 100, false); + if (rv != OK) { printf("Error in inserting the record\n"); return 3; } + conn->commit(); + printf("Tuple inserted\n"); + + pthread_t thr[2]; + int *status1, *status2; + pthread_create (&thr[0], NULL, &runTest1, NULL); + pthread_create (&thr[1], NULL, &runTest2, NULL); + printf("All threads started\n"); + + pthread_join(thr[0], (void**)&status1); + pthread_join(thr[1], (void**)&status2); + strcpy(statement, "drop table t1;"); + ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 3; } + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + if (*status1 != 0 || *status2 != 0) return 4; + if (p1RetVal) { delete p1RetVal; p1RetVal = NULL; } + if (p2RetVal) { delete p2RetVal; p2RetVal = NULL; } + return 0; +} + +void* runTest1(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + rv = conn->beginTrans(READ_COMMITTED); + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p1RetVal = new int(); + *p1RetVal = 0; + + rv = select(stmt, 100, true); + if (rv != OK) { printf("Test Failed:first thread failed to select\n"); *p1RetVal = 1; } + selectDone = 1; + while (updateDone != 1) {::sleep(1); } + rv = select(stmt, 100, true, true); + if (rv == OK) { printf("Test Failed:first thread read succeeded \n"); *p1RetVal = 1; } + allDone = 1; + conn->commit(); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p1RetVal); +} + +void* runTest2(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + rv = conn->beginTrans(READ_COMMITTED); + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + while (selectDone != 1) {::sleep(1); } + p2RetVal = new int(); + *p2RetVal = 0; + rv = update(stmt, 100, true); + if (rv != OK) { + printf("Test Failed:second thread failed to update\n"); + *p2RetVal = 1; + } + updateDone = 1; + while (allDone !=1) ::sleep(1); + rv = conn->commit(); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p2RetVal); +} diff --git a/test/sqlapi/Csql/Isolation/isotest2.c b/test/sqlapi/Csql/Isolation/isotest2.c new file mode 100644 index 00000000..0d10ad54 --- /dev/null +++ b/test/sqlapi/Csql/Isolation/isotest2.c @@ -0,0 +1,103 @@ +#include "common.h" +//READ_COMMITTED isolation testing +//T1 and T2 both doing select for same tuple + +void* runTest1(void *p); +void* runTest2(void *p); +int *p1RetVal = NULL; +int *p2RetVal = NULL; +int main() +{ + + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return 1; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + + char statement[1024]="create table t1 (f1 int, f2 char(196), primary key(f1));"; + int ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 1; } + rv = conn->beginTrans(READ_COMMITTED); + if (rv != OK) return 2; + rv = insert(stmt, 100, false); + if (rv != OK) { printf("Error in inserting the record\n"); return 3; } + conn->commit(); + printf("Tuple inserted\n"); + + pthread_t thr[2]; + int *status1, *status2; + pthread_create (&thr[0], NULL, &runTest1, NULL); + pthread_create (&thr[1], NULL, &runTest2, NULL); + printf("All threads started\n"); + + pthread_join(thr[0], (void**)&status1); + pthread_join(thr[1], (void**)&status2); + strcpy(statement, "drop table t1;"); + ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 3; } + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + if (*status1 != 0 || *status2 != 0) return 4; + if (p1RetVal) { delete p1RetVal; p1RetVal = NULL; } + if (p2RetVal) { delete p2RetVal; p2RetVal = NULL; } + return 0; +} + +void* runTest1(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +#else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p1RetVal = new int(); + *p1RetVal = 0; + + rv = select(stmt, 100, true); + if (rv != OK) { printf("Test Failed:first thread failed to select\n"); *p1RetVal = 1; } + conn->commit(); + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p1RetVal); +} + +void* runTest2(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +#else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p2RetVal = new int(); + *p2RetVal = 0; + rv = select(stmt, 100, false); + if (rv != OK) { + printf("Test Failed:second thread failed to select\n"); + *p2RetVal = 1; + } + rv = conn->commit(); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p2RetVal); +} diff --git a/test/sqlapi/Csql/Isolation/isotest3.c b/test/sqlapi/Csql/Isolation/isotest3.c new file mode 100644 index 00000000..c8ba9925 --- /dev/null +++ b/test/sqlapi/Csql/Isolation/isotest3.c @@ -0,0 +1,111 @@ +#include "common.h" +//READ_COMMITTED isolation testing +//T1 doing insert and T2 doing select for same tuple + +void* runTest1(void *p); +void* runTest2(void *p); +int *p1RetVal = NULL; +int *p2RetVal = NULL; +int main() +{ + + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return 1; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + + char statement[1024]="create table t1 (f1 int, f2 char(196), primary key(f1));"; + int ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 1; } + rv = conn->beginTrans(READ_COMMITTED); + if (rv != OK) return 2; + rv = insert(stmt, 100, false); + if (rv != OK) { printf("Error in inserting the record\n"); return 3; } + conn->commit(); + printf("Tuple inserted\n"); + + pthread_t thr[2]; + int *status1, *status2; + pthread_create (&thr[0], NULL, &runTest1, NULL); + pthread_create (&thr[1], NULL, &runTest2, NULL); + printf("All threads started\n"); + + pthread_join(thr[0], (void**)&status1); + pthread_join(thr[1], (void**)&status2); + strcpy(statement, "drop table t1;"); + ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 3; } + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + if (*status1 != 0 || *status2 != 0) return 4; + if (p1RetVal) { delete p1RetVal; p1RetVal = NULL; } + if (p2RetVal) { delete p2RetVal; p2RetVal = NULL; } + return 0; +} + +void* runTest1(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +#else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p1RetVal = new int(); + *p1RetVal = 0; + + rv = insert(stmt, 200, true); + if (rv != OK) { printf("Test Failed:first thread failed to insert\n"); *p1RetVal = 1; } + conn->commit(); + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p1RetVal); +} + +void* runTest2(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +# else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p2RetVal = new int(); + *p2RetVal = 0; + rv = select(stmt, 200, false); +# ifdef RDUNCOM + if (rv != OK) { + printf("Test Failed:second thread failed to select.\n"); +# elif defined RDRPT + if (rv == OK) { + printf("Test Failed:second thread selects.\n"); +# else + if (rv == OK) { + printf("Test Failed:second thread selects.\n"); +#endif + *p2RetVal = 1; + } + rv = conn->commit(); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p2RetVal); +} diff --git a/test/sqlapi/Csql/Isolation/isotest4.c b/test/sqlapi/Csql/Isolation/isotest4.c new file mode 100644 index 00000000..d73ac5ea --- /dev/null +++ b/test/sqlapi/Csql/Isolation/isotest4.c @@ -0,0 +1,111 @@ +#include "common.h" +//READ_COMMITTED isolation testing +//T1 doing Select and T2 doing update for same tuple + +void* runTest1(void *p); +void* runTest2(void *p); +int *p1RetVal = NULL; +int *p2RetVal = NULL; +int main() +{ + + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return 1; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + + char statement[1024]="create table t1 (f1 int, f2 char(196), primary key(f1));"; + int ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 1; } + rv = conn->beginTrans(READ_COMMITTED); + if (rv != OK) return 2; + rv = insert(stmt, 100, false); + if (rv != OK) { printf("Error in inserting the record\n"); return 3; } + conn->commit(); + printf("Tuple inserted\n"); + + pthread_t thr[2]; + int *status1, *status2; + pthread_create (&thr[0], NULL, &runTest1, NULL); + pthread_create (&thr[1], NULL, &runTest2, NULL); + printf("All threads started\n"); + + pthread_join(thr[0], (void**)&status1); + pthread_join(thr[1], (void**)&status2); + strcpy(statement, "drop table t1;"); + ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 3; } + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + if (*status1 != 0 || *status2 != 0) return 4; + if (p1RetVal) { delete p1RetVal; p1RetVal = NULL; } + if (p2RetVal) { delete p2RetVal; p2RetVal = NULL; } + return 0; +} + +void* runTest1(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +#else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p1RetVal = new int(); + *p1RetVal = 0; + + rv = select(stmt, 100, true); + if (rv != OK) { printf("Test Failed:first thread failed to select\n"); *p1RetVal = 1; } + conn->commit(); + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p1RetVal); +} + +void* runTest2(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +#else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p2RetVal = new int(); + *p2RetVal = 0; + rv = update(stmt, 100, false); +# ifdef RDUNCOM + if (rv != OK) { + printf("Test Failed:second thread failed to update\n"); +# elif defined RDRPT + if (rv == OK) { + printf("Test Failed:second thread updates.\n"); +# else + if (rv != OK) { + printf("Test Failed:second thread failed to update\n"); +#endif + *p2RetVal = 1; + } + rv = conn->commit(); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p2RetVal); +} diff --git a/test/sqlapi/Csql/Isolation/isotest5.c b/test/sqlapi/Csql/Isolation/isotest5.c new file mode 100644 index 00000000..58be3dcd --- /dev/null +++ b/test/sqlapi/Csql/Isolation/isotest5.c @@ -0,0 +1,112 @@ +#include "common.h" +//READ_COMMITTED isolation testing +//T1 doing Select and T2 doing delete for same tuple +//Both should succeed + +void* runTest1(void *p); +void* runTest2(void *p); +int *p1RetVal = NULL; +int *p2RetVal = NULL; +int main() +{ + + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return 1; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + + char statement[1024]="create table t1 (f1 int, f2 char(196), primary key(f1));"; + int ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 1; } + rv = conn->beginTrans(READ_COMMITTED); + if (rv != OK) return 2; + rv = insert(stmt, 100, false); + if (rv != OK) { printf("Error in inserting the record\n"); return 3; } + conn->commit(); + printf("Tuple inserted\n"); + + pthread_t thr[2]; + int *status1, *status2; + pthread_create (&thr[0], NULL, &runTest1, NULL); + pthread_create (&thr[1], NULL, &runTest2, NULL); + printf("All threads started\n"); + + pthread_join(thr[0], (void**)&status1); + pthread_join(thr[1], (void**)&status2); + strcpy(statement, "drop table t1;"); + ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 3; } + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + if (*status1 != 0 || *status2 != 0) return 4; + if (p1RetVal) { delete p1RetVal; p1RetVal = NULL; } + if (p2RetVal) { delete p2RetVal; p2RetVal = NULL; } + return 0; +} + +void* runTest1(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +#else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p1RetVal = new int(); + *p1RetVal = 0; + + rv = select(stmt, 100, true); + if (rv != OK) { printf("Test Failed:first thread failed to select\n"); *p1RetVal = 1; } + conn->commit(); + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p1RetVal); +} + +void* runTest2(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +#else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p2RetVal = new int(); + *p2RetVal = 0; + rv = remove(stmt, 100, false); +# ifdef RDUNCOM + if (rv != OK) { + printf("Test Failed:second thread failed to remove.\n"); +# elif defined RDRPT + if (rv == OK) { + printf("Test Failed:second thread removes.\n"); +# else + if (rv != OK) { + printf("Test Failed:second thread failed to remove.\n"); +#endif + *p2RetVal = 1; + } + rv = conn->commit(); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p2RetVal); +} diff --git a/test/sqlapi/Csql/Isolation/isotest6.c b/test/sqlapi/Csql/Isolation/isotest6.c new file mode 100644 index 00000000..769cda92 --- /dev/null +++ b/test/sqlapi/Csql/Isolation/isotest6.c @@ -0,0 +1,103 @@ +#include "common.h" +//READ_COMMITTED isolation testing +//T1 doing Delete and T2 doing insert for same tuple + +void* runTest1(void *p); +void* runTest2(void *p); +int *p1RetVal = NULL; +int *p2RetVal = NULL; +int main() +{ + + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return 1; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + + char statement[1024]="create table t1 (f1 int, f2 char(196), primary key(f1));"; + int ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 1; } + rv = conn->beginTrans(READ_COMMITTED); + if (rv != OK) return 2; + rv = insert(stmt, 100, false); + if (rv != OK) { printf("Error in inserting the record\n"); return 3; } + conn->commit(); + printf("Tuple inserted\n"); + + pthread_t thr[2]; + int *status1, *status2; + pthread_create (&thr[0], NULL, &runTest1, NULL); + pthread_create (&thr[1], NULL, &runTest2, NULL); + printf("All threads started\n"); + + pthread_join(thr[0], (void**)&status1); + pthread_join(thr[1], (void**)&status2); + strcpy(statement, "drop table t1;"); + ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 3; } + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + if (*status1 != 0 || *status2 != 0) return 4; + if (p1RetVal) { delete p1RetVal; p1RetVal = NULL; } + if (p2RetVal) { delete p2RetVal; p2RetVal = NULL; } + return 0; +} + +void* runTest1(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +# else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p1RetVal = new int(); + *p1RetVal = 0; + + rv = remove(stmt, 100, true); + if (rv != OK) { printf("Test Failed:first thread failed to delete\n"); *p1RetVal = 1; } + conn->commit(); + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p1RetVal); +} + +void* runTest2(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +# else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p2RetVal = new int(); + *p2RetVal = 0; + rv = insert(stmt, 100, false); + if (rv == OK) { + printf("Test Failed:second thread inserts.\n"); + *p2RetVal = 1; + } + rv = conn->commit(); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p2RetVal); +} diff --git a/test/sqlapi/Csql/Isolation/isotest7.c b/test/sqlapi/Csql/Isolation/isotest7.c new file mode 100644 index 00000000..c8157e6d --- /dev/null +++ b/test/sqlapi/Csql/Isolation/isotest7.c @@ -0,0 +1,103 @@ +#include "common.h" +//READ_COMMITTED isolation testing +//T1 doing update and T2 doing delete for same tuple + +void* runTest1(void *p); +void* runTest2(void *p); +int *p1RetVal = NULL; +int *p2RetVal = NULL; +int main() +{ + + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return 1; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + + char statement[1024]="create table t1 (f1 int, f2 char(196), primary key(f1));"; + int ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 1; } + rv = conn->beginTrans(READ_COMMITTED); + if (rv != OK) return 2; + rv = insert(stmt, 100, false); + if (rv != OK) { printf("Error in inserting the record\n"); return 3; } + conn->commit(); + printf("Tuple inserted\n"); + + pthread_t thr[2]; + int *status1, *status2; + pthread_create (&thr[0], NULL, &runTest1, NULL); + pthread_create (&thr[1], NULL, &runTest2, NULL); + printf("All threads started\n"); + + pthread_join(thr[0], (void**)&status1); + pthread_join(thr[1], (void**)&status2); + strcpy(statement, "drop table t1;"); + ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 3; } + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + if (*status1 != 0 || *status2 != 0) return 4; + if (p1RetVal) { delete p1RetVal; p1RetVal = NULL; } + if (p2RetVal) { delete p2RetVal; p2RetVal = NULL; } + return 0; +} + +void* runTest1(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +# else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p1RetVal = new int(); + *p1RetVal = 0; + + rv = update(stmt, 100, true); + if (rv != OK) { printf("Test Failed:first thread failed to update\n"); *p1RetVal = 1; } + conn->commit(); + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p1RetVal); +} + +void* runTest2(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +# else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p2RetVal = new int(); + *p2RetVal = 0; + rv = remove(stmt, 100, false); + if (rv == OK) { + printf("Test Failed:second thread removes.\n"); + *p2RetVal = 1; + } + rv = conn->commit(); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p2RetVal); +} diff --git a/test/sqlapi/Csql/Isolation/isotest8.c b/test/sqlapi/Csql/Isolation/isotest8.c new file mode 100644 index 00000000..22bc0a86 --- /dev/null +++ b/test/sqlapi/Csql/Isolation/isotest8.c @@ -0,0 +1,110 @@ +#include "common.h" +//READ_COMMITTED isolation testing +//T1 doing update and T2 doing delete for same tuple + +void* runTest1(void *p); +void* runTest2(void *p); +int *p1RetVal = NULL; +int *p2RetVal = NULL; + +int updateDone1 = 0, updateDone2=0; +int main() +{ + + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return 1; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + + char statement[1024]="create table t1 (f1 int, f2 char(196), primary key(f1));"; + int ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 1; } + rv = conn->beginTrans(READ_COMMITTED); + if (rv != OK) return 2; + rv = insert(stmt, 100, false); + if (rv != OK) { printf("Error in inserting the record\n"); return 3; } + conn->commit(); + printf("Tuple inserted\n"); + + pthread_t thr[2]; + int *status1, *status2; + pthread_create (&thr[0], NULL, &runTest1, NULL); + pthread_create (&thr[1], NULL, &runTest2, NULL); + printf("All threads started\n"); + + pthread_join(thr[0], (void**)&status1); + pthread_join(thr[1], (void**)&status2); + strcpy(statement, "drop table t1;"); + ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 3; } + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + if (*status1 != 0 || *status2 != 0) return 4; + if (p1RetVal) { delete p1RetVal; p1RetVal = NULL; } + if (p2RetVal) { delete p2RetVal; p2RetVal = NULL; } + return 0; +} + +void* runTest1(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +# else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p1RetVal = new int(); + *p1RetVal = 0; + + rv = update(stmt, 100, true); + if (rv != OK) { printf("Test Failed:first thread failed to update\n"); *p1RetVal = 1; } + updateDone1 = 1; + while (updateDone2 != 1) sleep(1); + rv = select(stmt, 100, true, true); + if (rv != OK) { printf("Test Failed:first thread read wrong value.\n"); *p1RetVal = 1; } + conn->commit(); + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p1RetVal); +} + +void* runTest2(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +# else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p2RetVal = new int(); + *p2RetVal = 0; + rv = update(stmt, 100, true, "RITHISH"); + if (rv == OK) { + printf("Test Failed:second thread updates.\n"); + *p2RetVal = 1; + } + updateDone2 = 1; + rv = conn->commit(); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p2RetVal); +} diff --git a/test/sqlapi/Csql/Isolation/isotest9.c b/test/sqlapi/Csql/Isolation/isotest9.c new file mode 100644 index 00000000..1e38b97f --- /dev/null +++ b/test/sqlapi/Csql/Isolation/isotest9.c @@ -0,0 +1,128 @@ +#include "common.h" +//READ_COMMITTED isolation testing +// T1 T2 +// ------------------------- +// Read +// Delete +// Read +// T1 second read should fail saying "tuple not found +void* runTest1(void *p); +void* runTest2(void *p); +int *p1RetVal = NULL; +int *p2RetVal = NULL; +int selectDone = 0, deleteDone =0; + +int main() +{ + + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return 1; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); + + char statement[1024]="create table t1 (f1 int, f2 char(196), primary key(f1));"; + int ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 1; } + rv = conn->beginTrans(READ_COMMITTED); + if (rv != OK) return 2; + rv = insert(stmt, 100, false); + if (rv != OK) { printf("Error in inserting the record\n"); return 3; } + conn->commit(); + printf("Tuple inserted\n"); + + pthread_t thr[2]; + int *status1, *status2; + pthread_create (&thr[0], NULL, &runTest1, NULL); + pthread_create (&thr[1], NULL, &runTest2, NULL); + printf("All threads started\n"); + + pthread_join(thr[0], (void**)&status1); + pthread_join(thr[1], (void**)&status2); + strcpy(statement, "drop table t1;"); + ret = executeDdlQuery(conn, stmt, statement); + if (ret != 0) { return 3; } + conn->disconnect(); + stmt->free(); delete stmt; delete conn; + if (*status1 != 0 || *status2 != 0) return 4; + if (p1RetVal) { delete p1RetVal; p1RetVal = NULL; } + if (p2RetVal) { delete p2RetVal; p2RetVal = NULL; } + return 0; +} + +void* runTest1(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +# else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + p1RetVal = new int(); + *p1RetVal = 0; + + rv = select(stmt, 100, true); + if (rv != OK) { printf("Test Failed:first thread failed to select\n"); *p1RetVal = 1; } + selectDone = 1; + while (deleteDone != 1) {::sleep(1); } + printf("P2 deleted says P1 and P1 is selecting now\n"); + rv = select(stmt, 100, false); + if (rv == OK) { printf("Test Failed:first thread read succeeded \n"); *p1RetVal = 1; } + printf ("P1 second select returned with rv = %d\n", rv); + conn->commit(); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p1RetVal); +} + +void* runTest2(void *message) +{ + AbsSqlConnection *conn = createConnection(); + DbRetVal rv = conn->connect("root", "manager"); + if (rv != OK) { printf("Error during connection %d\n", rv); return NULL; } + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(conn); +# ifdef RDUNCOM + rv = conn->beginTrans(READ_UNCOMMITTED); +# elif defined RDRPT + rv = conn->beginTrans(READ_REPEATABLE); +# else + rv = conn->beginTrans(READ_COMMITTED); +#endif + if (rv != OK) return NULL; + printf("Thread and pid is %d %lu\n", os::getpid(), os::getthrid()); + while (selectDone != 1) {::sleep(1); } + p2RetVal = new int(); + *p2RetVal = 0; + rv = remove(stmt, 100, true); +# ifdef RDUNCOM + if (rv != OK) { + printf("Test Failed:second thread failed to remove.\n"); +# elif defined RDRPT + if (rv == OK) { + printf("Test Failed:second thread selects.\n"); +# else + if (rv != OK) { + printf("Test Failed:second thread failed to remove\n"); +#endif + *p2RetVal = 1; + } + printf("P2 deleted\n"); + deleteDone =1; + sleep(5); + rv = conn->commit(); + printf("P2 committed\n"); + rv = conn->disconnect(); + stmt->free(); delete stmt; delete conn; + printf("conn closed %d for Thread and pid is %d %lu\n", rv, os::getpid(), os::getthrid()); + pthread_exit(p2RetVal); +} diff --git a/test/sqlapi/Csql/Makefile b/test/sqlapi/Csql/Makefile new file mode 100644 index 00000000..8b8aa8e0 --- /dev/null +++ b/test/sqlapi/Csql/Makefile @@ -0,0 +1,18 @@ +OSNAME = $(shell uname -s) +MAKE=gmake + +all: + @for i in *; \ + do \ + if [ -d $$i ];\ + then cd $$i; $(MAKE); cd ..;\ + fi;\ + done + +clean: + @for i in *; \ + do \ + if [ -d $$i ];\ + then cd $$i; $(MAKE) clean; cd ..;\ + fi;\ + done diff --git a/test/sqlapi/Csql/ParamStmt/Makefile b/test/sqlapi/Csql/ParamStmt/Makefile new file mode 100644 index 00000000..45ee9f2c --- /dev/null +++ b/test/sqlapi/Csql/ParamStmt/Makefile @@ -0,0 +1,51 @@ +OSNAME = $(shell uname -s) +PlatForm=notsupported +ifeq ($(OSNAME), SunOS) + CPlus = CC + CPlusFlags = -O2 -w $(COMPILER_FLAG) + SYSLIBS=-ldl -lnsl -lsocket -lposix4 + PlatForm=supported +endif +ifeq ($(OSNAME), Linux) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif +ifeq ($(OSNAME), FreeBSD) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif + + +INCL= -I$(CSQL_INSTALL_ROOT)/install/include -I../../../../include +ifeq ($(BUILDTYPE), MMDB) +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcsqlsqlnw +else +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcacheload -lcsqlsqlnw -lcsqlgw -lcsqlodbcadapter +endif + +TARGETS = \ + test001 test001n \ + test002 test002n \ + +ifeq ($(PlatForm), supported) +all: $(TARGETS) +else +all: + echo "CSQL is not supported on $(OSNAME) platform" +endif + +test001: paratest1.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test001n: paratest1.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002: paratest2.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002n: paratest2.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) + +clean: + rm -f *.o ${TARGETS} diff --git a/test/sqlapi/Csql/ParamStmt/TODO b/test/sqlapi/Csql/ParamStmt/TODO new file mode 100644 index 00000000..f68ec121 --- /dev/null +++ b/test/sqlapi/Csql/ParamStmt/TODO @@ -0,0 +1,54 @@ +1. create table T1 with 11 fields. + insert some records into it. + noOfParamFields() should return 11. + getParamFldInfo() for all fields and print the field info. + select * from T1; (sqlapi/Parameter/paratest1.c to be modified for varchar field) + +2. create table T1 with 11 fields. + insert some records into it. + select * from T1 with where clause; (sqlapi/Parameter/paratest2.c to be modified for varchar field) + +3. create table T1 with 11 fields. + insert some records into it. + delete records from T1 with where clause + select * from T1; (sqlapi/Parameter/paratest3.c to be modified for varchar field) + +4. create table T1 with 11 fields. + insert some records into it. + update T1 WITH ALL PARAMETERS. + noOfParamFields() should return 11. + select * from T1; (sqlapi/Parameter/paratest4.c to be modified for varchar field) + +5. create table T1 with 11 fields. + insert some records into it with null values + delete records from T1 with where clause. + select * from T1; + for the below 3 line (sqlapi/Parameter/paratest5.c and to be modified for varchar field) + update records into some value using where with is null, is not null. + delete some records using where with is null, is not null. + select * from T1; + +6. create table T1 with 11 fields. + insert some records into it. + update T1 with some Null values in the parameter. + noOfParamFields() should return 11. + select * from T1; (sqlapi/Parameter/paratest6.c to be modified for varchar field) + +7. select tuple with WHERE clause having param for some fields + Create a table having f1 date, f2 tnt and f3 string + Insert 5-6 records + Execute SELECT * FROM T1 WHERE f1='Date Value' AND f2=? AND f3=?; (sqlapi/Parameter/paratest7date.c) + +8. select tuple with WHERE clause having param for some fields + Create a table having f1 date, f2 tnt and f3 string + Insert 5-6 records + Execute SELECT * FROM T1 WHERE f1='now' AND f2=? AND f3=?; (sqlapi/Parameter/paratest7now.c) + +9. Primary key foreign key test (insert , update, delete ) using parameterised statement for all. (new script to be written) + +10. Insert,update,delete records of copied table, should be passed using parameterised statement. (new script to be written) + +11. All Predicate test for all all datatypes using parameterised statement on select statement. (new script to be written) + +12. Aggregate with having using parameterised statement. (new script to be written) + diff --git a/test/sqlapi/Csql/ParamStmt/common.h b/test/sqlapi/Csql/ParamStmt/common.h new file mode 100644 index 00000000..f1ab199a --- /dev/null +++ b/test/sqlapi/Csql/ParamStmt/common.h @@ -0,0 +1,37 @@ +#include +#include +#include + +AbsSqlConnection *createConnection() +{ +#ifdef NETWORK + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetwork); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKADAPTER + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkAdapter); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKGATEWAY + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkGateway); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#else + AbsSqlConnection *con = SqlFactory::createConnection(CSql); +#endif + return con; +} + +AbsSqlStatement *createStatement() +{ +#ifdef NETWORK + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetwork); +#elif defined NETWORKADAPTER + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkAdapter); +#elif defined NETWORKGATEWAY + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkGateway); +#else + AbsSqlStatement *stmt = SqlFactory::createStatement(CSql); +#endif + return stmt; +} diff --git a/test/sqlapi/Csql/ParamStmt/exp.test001 b/test/sqlapi/Csql/ParamStmt/exp.test001 new file mode 100644 index 00000000..3df98952 --- /dev/null +++ b/test/sqlapi/Csql/ParamStmt/exp.test001 @@ -0,0 +1,136 @@ +Table created +noOfParamField Returns=11 + +*********************************************** +1 FIELD INFORMATION :: +Field Name :F1 +Data type of the field :0 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +2 FIELD INFORMATION :: +Field Name :F2 +Data type of the field :3 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +3 FIELD INFORMATION :: +Field Name :F3 +Data type of the field :30 +length of the field :32 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +4 FIELD INFORMATION :: +Field Name :F4 +Data type of the field :11 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +5 FIELD INFORMATION :: +Field Name :F5 +Data type of the field :11 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +6 FIELD INFORMATION :: +Field Name :F6 +Data type of the field :20 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +7 FIELD INFORMATION :: +Field Name :F7 +Data type of the field :21 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +8 FIELD INFORMATION :: +Field Name :F8 +Data type of the field :22 +length of the field :8 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +9 FIELD INFORMATION :: +Field Name :F9 +Data type of the field :4 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +10 FIELD INFORMATION :: +Field Name :F10 +Data type of the field :2 +length of the field :8 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +11 FIELD INFORMATION :: +Field Name :F11 +Data type of the field :32 +length of the field :20 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** +Total rows inserted 10 +F1=0 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=1 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=2 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=3 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=4 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=5 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=6 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=7 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=8 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=9 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +Total row fetched=10 +Table dropped diff --git a/test/sqlapi/Csql/ParamStmt/exp.test001n b/test/sqlapi/Csql/ParamStmt/exp.test001n new file mode 100644 index 00000000..3df98952 --- /dev/null +++ b/test/sqlapi/Csql/ParamStmt/exp.test001n @@ -0,0 +1,136 @@ +Table created +noOfParamField Returns=11 + +*********************************************** +1 FIELD INFORMATION :: +Field Name :F1 +Data type of the field :0 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +2 FIELD INFORMATION :: +Field Name :F2 +Data type of the field :3 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +3 FIELD INFORMATION :: +Field Name :F3 +Data type of the field :30 +length of the field :32 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +4 FIELD INFORMATION :: +Field Name :F4 +Data type of the field :11 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +5 FIELD INFORMATION :: +Field Name :F5 +Data type of the field :11 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +6 FIELD INFORMATION :: +Field Name :F6 +Data type of the field :20 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +7 FIELD INFORMATION :: +Field Name :F7 +Data type of the field :21 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +8 FIELD INFORMATION :: +Field Name :F8 +Data type of the field :22 +length of the field :8 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +9 FIELD INFORMATION :: +Field Name :F9 +Data type of the field :4 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +10 FIELD INFORMATION :: +Field Name :F10 +Data type of the field :2 +length of the field :8 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +11 FIELD INFORMATION :: +Field Name :F11 +Data type of the field :32 +length of the field :20 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** +Total rows inserted 10 +F1=0 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=1 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=2 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=3 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=4 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=5 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=6 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=7 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=8 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +F1=9 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 |F11=Aa1Bb2Cc3Dd4 +Total row fetched=10 +Table dropped diff --git a/test/sqlapi/Csql/ParamStmt/exp.test002 b/test/sqlapi/Csql/ParamStmt/exp.test002 new file mode 100644 index 00000000..fb914ccb --- /dev/null +++ b/test/sqlapi/Csql/ParamStmt/exp.test002 @@ -0,0 +1,14 @@ +Table created +Total rows inserted 10 +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +10 Tuples fetched +Table dropped diff --git a/test/sqlapi/Csql/ParamStmt/exp.test002n b/test/sqlapi/Csql/ParamStmt/exp.test002n new file mode 100644 index 00000000..fb914ccb --- /dev/null +++ b/test/sqlapi/Csql/ParamStmt/exp.test002n @@ -0,0 +1,14 @@ +Table created +Total rows inserted 10 +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=ABCDabcd1234 | +10 Tuples fetched +Table dropped diff --git a/test/sqlapi/Csql/ParamStmt/paratest1.c b/test/sqlapi/Csql/ParamStmt/paratest1.c new file mode 100644 index 00000000..df53bf8c --- /dev/null +++ b/test/sqlapi/Csql/ParamStmt/paratest1.c @@ -0,0 +1,137 @@ +/* Test Case: Number of parameterised Field(noOfparamFields) and Getting Parameterised field info(getParamFldinfo) + * create table T1 with 10 fields. + * insert some records into it. + * noOfParamFields() should return 11. + * getParamFldInfo() for all fields and print the field info. + * select * from T1; It should display proper result +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con= createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 TINYINT,F10 BIGINT, F11 VARCHAR(20));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 100; + short int f2var = 10; + char f3var[32]="jitendra"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2007,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2007,01,21); + f8var.setTime(12,29,30); + char f9var = 20; + long long f10var = 12000; + char f11var[20]="Aa1Bb2Cc3Dd4"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } +//**************************************************************************** + int nop; + nop = stmt->noOfParamFields(); + printf("noOfParamField Returns=%d\n",nop); + //getParamFldInfo() + FieldInfo *field = new FieldInfo(); + char fldName[20]; + DataType type; + size_t length; + int offset; + char defaultValueBuf[10]; + bool isNull; + bool isDefault; + for(int i=1;i<=11;i++) { + printf("\n***********************************************\n"); + printf("%d FIELD INFORMATION ::\n",i);; + rv = stmt->getParamFldInfo(i,field); + if(rv!=OK) { delete stmt; delete con; return 1; } + printf("Field Name :%s\n", field->fldName); + printf("Data type of the field :%d\n",field->type); + printf("length of the field :%d\n",field->length); + printf("Offset :%d\n",field->offset); + printf("Default value :%s\n",field->defaultValueBuf); + printf("Null field :%d\n",field->isNull); + printf("Default value :%d\n",field->isDefault); + printf("***********************************************\n"); + } + delete field; + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if (rv!=OK) break; + f1var=i; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setFloatParam(5,f5var); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setByteIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setStringParam(11,f11var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("Total rows inserted %d\n",count); + stmt->free(); + //********************************************************** + // SELECT * FROM T1; + strcpy(statement,"SELECT * FROM T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%f | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld |F11=%s \n",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var,f11var); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("Total row fetched=%d\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); + delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Csql/ParamStmt/paratest2.c b/test/sqlapi/Csql/ParamStmt/paratest2.c new file mode 100644 index 00000000..07256514 --- /dev/null +++ b/test/sqlapi/Csql/ParamStmt/paratest2.c @@ -0,0 +1,131 @@ +/*Test Case : Parameterised Insert and Select on all datatypes + * create table T1 with 10 fields. + * insert some records into it. + * select * from T1 with where clause; + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con= createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 TINYINT,F10 BIGINT, F11 VARCHAR(20));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 2; } + stmt->free(); + printf("Table created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 100; + short int f2var = 10; + char f3var[32]="jitendra"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2007,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2007,01,21); + f8var.setTime(12,29,30); + char f9var = 20; + long long f10var = 12000; + char f11var[20]="ABCDabcd1234"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 3; } + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if (rv!=OK) break; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setFloatParam(5,f5var); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setByteIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setStringParam(11,f11var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if (rv != OK) break; + count++; + } + printf("Total rows inserted %d\n",count); + stmt->free(); + //********************************************************** + // SELECT * FROM T1; + strcpy(statement,"SELECT * FROM T1 WHERE F1=? AND F2=? AND F3=? AND F4=? AND F5=? AND F6=? AND F7=? AND F8=? AND F9=? AND F10=? AND F11=?;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,f11var); + int f1var1=100; + short int f2var1=10; + char f3var1[20]="jitendra"; + float f4var1=5.5; + float f5var1=10.50; + Date f6var1; + f6var1.set(2007,1,21); + Time f7var1; + f7var1.set(12,29,30); + TimeStamp f8var1; + f8var1.setDate(2007,1,21); + f8var1.setTime(12,29,30); + char f9var1=20; + long long f10var1=12000; + char f11var1[20]="ABCDabcd1234"; + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 5; + stmt->setIntParam(1,f1var1); + stmt->setShortParam(2,f2var1); + stmt->setStringParam(3,f3var1); + stmt->setFloatParam(4,f4var1); + stmt->setFloatParam(5,f5var1); + stmt->setDateParam(6,f6var1); + stmt->setTimeParam(7,f7var1); + stmt->setTimeStampParam(8,f8var1); + stmt->setByteIntParam(9,f9var1); + stmt->setLongLongParam(10,f10var1); + stmt->setStringParam(11,f11var1); + stmt->execute(rows); + while(stmt->fetch()!=NULL) { + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%f | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld | F11=%s |\n",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var,f11var); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv!=OK)return 6; + stmt->free(); + printf("%d Tuples fetched\n",count); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK){delete stmt; delete con; return -1;} + rv = stmt->execute(rows); + if(rv!=OK){delete stmt;delete con;return -1;} + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Csql/Transaction/TODO b/test/sqlapi/Csql/Transaction/TODO new file mode 100644 index 00000000..02be9c50 --- /dev/null +++ b/test/sqlapi/Csql/Transaction/TODO @@ -0,0 +1,27 @@ +1. Default autocommit mode. + create table with all datatypes. + Insert 5 records . + Rollback the transaction. + Records should not be rolled back + update records + Records should not be rolled back + delete records + Records should not be rolled back + +2. Autocommit mode off + create table with all datatypes. + Insert 5 records . + Commit the transaction. + Rollback after commit should not have any effect. + update records + Rollback the transaction + Transaction should be rolled back + update records + insert some records + delete some records. + All the 3 transactions should be rolled back with rollback statement. + update records + insert some records + delete some records. + All the 3 transactions should be committed back with commit statement. + diff --git a/test/sqlapi/Makefile b/test/sqlapi/Makefile new file mode 100644 index 00000000..8b8aa8e0 --- /dev/null +++ b/test/sqlapi/Makefile @@ -0,0 +1,18 @@ +OSNAME = $(shell uname -s) +MAKE=gmake + +all: + @for i in *; \ + do \ + if [ -d $$i ];\ + then cd $$i; $(MAKE); cd ..;\ + fi;\ + done + +clean: + @for i in *; \ + do \ + if [ -d $$i ];\ + then cd $$i; $(MAKE) clean; cd ..;\ + fi;\ + done diff --git a/test/sqlapi/Parameter/Makefile b/test/sqlapi/Parameter/Makefile new file mode 100644 index 00000000..63eb8fd7 --- /dev/null +++ b/test/sqlapi/Parameter/Makefile @@ -0,0 +1,86 @@ +OSNAME = $(shell uname -s) +PlatForm=notsupported +ifeq ($(OSNAME), SunOS) + CPlus = CC + CPlusFlags = -O2 -w $(COMPILER_FLAG) + SYSLIBS=-ldl -lnsl -lsocket -lposix4 + PlatForm=supported +endif +ifeq ($(OSNAME), Linux) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif +ifeq ($(OSNAME), FreeBSD) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif + + +INCL= -I$(CSQL_INSTALL_ROOT)/install/include -I../../../include +ifeq ($(BUILDTYPE), MMDB) +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcsqlsqlnw +else +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcacheload -lcsqlsqlnw -lcsqlgw -lcsqlodbcadapter +endif + +TARGETS = \ + test001 test001n\ + test002 test002n\ + test003 test003n\ + test004 test004n\ + test005 test005n\ + test006 test006n\ + test007 test007n\ + test008 test008n\ + test100 test100n + +ifeq ($(PlatForm), supported) +all: $(TARGETS) +else +all: + echo "CSQL is not supported on $(OSNAME) platform" +endif + +test001: paratest1.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test001n: paratest1.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002:paratest2.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002n: paratest2.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003:paratest3.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003n: paratest3.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004:paratest4.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004n: paratest4.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005:paratest5.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005n: paratest5.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006:paratest6.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006n: paratest6.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test007:paratest7date.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test007n: paratest7date.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test008:paratest8now.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test008n: paratest8now.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test100:paratest100.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test100n: paratest100.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) + +clean: + rm -f *.o ${TARGETS} diff --git a/test/sqlapi/Parameter/common.h b/test/sqlapi/Parameter/common.h new file mode 100644 index 00000000..f1ab199a --- /dev/null +++ b/test/sqlapi/Parameter/common.h @@ -0,0 +1,37 @@ +#include +#include +#include + +AbsSqlConnection *createConnection() +{ +#ifdef NETWORK + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetwork); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKADAPTER + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkAdapter); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKGATEWAY + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkGateway); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#else + AbsSqlConnection *con = SqlFactory::createConnection(CSql); +#endif + return con; +} + +AbsSqlStatement *createStatement() +{ +#ifdef NETWORK + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetwork); +#elif defined NETWORKADAPTER + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkAdapter); +#elif defined NETWORKGATEWAY + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkGateway); +#else + AbsSqlStatement *stmt = SqlFactory::createStatement(CSql); +#endif + return stmt; +} diff --git a/test/sqlapi/Parameter/exp.test001 b/test/sqlapi/Parameter/exp.test001 new file mode 100644 index 00000000..8b968347 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test001 @@ -0,0 +1,146 @@ +Table created +noOfParamField Returns=11 + +*********************************************** +1 FIELD INFORMATION :: +Field Name :F1 +Data type of the field :0 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +2 FIELD INFORMATION :: +Field Name :F2 +Data type of the field :3 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +3 FIELD INFORMATION :: +Field Name :F3 +Data type of the field :30 +length of the field :32 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +4 FIELD INFORMATION :: +Field Name :F4 +Data type of the field :11 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +5 FIELD INFORMATION :: +Field Name :F5 +Data type of the field :11 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +6 FIELD INFORMATION :: +Field Name :F6 +Data type of the field :20 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +7 FIELD INFORMATION :: +Field Name :F7 +Data type of the field :21 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +8 FIELD INFORMATION :: +Field Name :F8 +Data type of the field :22 +length of the field :8 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +9 FIELD INFORMATION :: +Field Name :F9 +Data type of the field :0 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +10 FIELD INFORMATION :: +Field Name :F10 +Data type of the field :2 +length of the field :8 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +11 FIELD INFORMATION :: +Field Name :F11 +Data type of the field :31 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** +Total rows inserted 10 +F1=0 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=1 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=2 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=3 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=4 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=5 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=6 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=7 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=8 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=9 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +Total row fetched=10 +Table dropped diff --git a/test/sqlapi/Parameter/exp.test001n b/test/sqlapi/Parameter/exp.test001n new file mode 100644 index 00000000..8b968347 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test001n @@ -0,0 +1,146 @@ +Table created +noOfParamField Returns=11 + +*********************************************** +1 FIELD INFORMATION :: +Field Name :F1 +Data type of the field :0 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +2 FIELD INFORMATION :: +Field Name :F2 +Data type of the field :3 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +3 FIELD INFORMATION :: +Field Name :F3 +Data type of the field :30 +length of the field :32 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +4 FIELD INFORMATION :: +Field Name :F4 +Data type of the field :11 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +5 FIELD INFORMATION :: +Field Name :F5 +Data type of the field :11 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +6 FIELD INFORMATION :: +Field Name :F6 +Data type of the field :20 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +7 FIELD INFORMATION :: +Field Name :F7 +Data type of the field :21 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +8 FIELD INFORMATION :: +Field Name :F8 +Data type of the field :22 +length of the field :8 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +9 FIELD INFORMATION :: +Field Name :F9 +Data type of the field :0 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +10 FIELD INFORMATION :: +Field Name :F10 +Data type of the field :2 +length of the field :8 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +11 FIELD INFORMATION :: +Field Name :F11 +Data type of the field :31 +length of the field :4 +Offset :0 +Default value : +Null field :0 +Default value :0 +*********************************************** +Total rows inserted 10 +F1=0 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=1 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=2 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=3 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=4 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=5 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=6 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=7 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=8 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +F1=9 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 + | 23FE +Total row fetched=10 +Table dropped diff --git a/test/sqlapi/Parameter/exp.test002 b/test/sqlapi/Parameter/exp.test002 new file mode 100644 index 00000000..ab9f2412 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test002 @@ -0,0 +1,14 @@ +Table created +Total rows inserted 10 +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +10 Tuples fetched +Table dropped diff --git a/test/sqlapi/Parameter/exp.test002n b/test/sqlapi/Parameter/exp.test002n new file mode 100644 index 00000000..ab9f2412 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test002n @@ -0,0 +1,14 @@ +Table created +Total rows inserted 10 +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=100 | F2=10 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +10 Tuples fetched +Table dropped diff --git a/test/sqlapi/Parameter/exp.test003 b/test/sqlapi/Parameter/exp.test003 new file mode 100644 index 00000000..eca8b51d --- /dev/null +++ b/test/sqlapi/Parameter/exp.test003 @@ -0,0 +1,10 @@ +Table T1 created +Total rows inserted 10 +Total row deleted=5 +F1=0 | F2=1 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=1 | F2=1 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=2 | F2=1 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=3 | F2=1 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=4 | F2=1 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +Total row fetched=5 +Table dropped diff --git a/test/sqlapi/Parameter/exp.test003n b/test/sqlapi/Parameter/exp.test003n new file mode 100644 index 00000000..eca8b51d --- /dev/null +++ b/test/sqlapi/Parameter/exp.test003n @@ -0,0 +1,10 @@ +Table T1 created +Total rows inserted 10 +Total row deleted=5 +F1=0 | F2=1 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=1 | F2=1 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=2 | F2=1 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=3 | F2=1 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=4 | F2=1 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +Total row fetched=5 +Table dropped diff --git a/test/sqlapi/Parameter/exp.test004 b/test/sqlapi/Parameter/exp.test004 new file mode 100644 index 00000000..fc165888 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test004 @@ -0,0 +1,17 @@ +Table created +10 Rows inserted +noOfParamFields return=8 +5 Rows updated +F1=0 | F2=11 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=1 | F2=12 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=2 | F2=13 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=3 | F2=14 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=4 | F2=15 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 + +F1=5 | F2=16 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=17 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=18 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=19 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=20 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +10 Rows fetched +Table dropped diff --git a/test/sqlapi/Parameter/exp.test004.x86_64 b/test/sqlapi/Parameter/exp.test004.x86_64 new file mode 100644 index 00000000..fc165888 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test004.x86_64 @@ -0,0 +1,17 @@ +Table created +10 Rows inserted +noOfParamFields return=8 +5 Rows updated +F1=0 | F2=11 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=1 | F2=12 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=2 | F2=13 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=3 | F2=14 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=4 | F2=15 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 + +F1=5 | F2=16 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=17 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=18 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=19 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=20 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +10 Rows fetched +Table dropped diff --git a/test/sqlapi/Parameter/exp.test004n b/test/sqlapi/Parameter/exp.test004n new file mode 100644 index 00000000..fc165888 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test004n @@ -0,0 +1,17 @@ +Table created +10 Rows inserted +noOfParamFields return=8 +5 Rows updated +F1=0 | F2=11 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=1 | F2=12 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=2 | F2=13 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=3 | F2=14 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=4 | F2=15 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 + +F1=5 | F2=16 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=17 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=18 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=19 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=20 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +10 Rows fetched +Table dropped diff --git a/test/sqlapi/Parameter/exp.test004n.x86_64 b/test/sqlapi/Parameter/exp.test004n.x86_64 new file mode 100644 index 00000000..fc165888 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test004n.x86_64 @@ -0,0 +1,17 @@ +Table created +10 Rows inserted +noOfParamFields return=8 +5 Rows updated +F1=0 | F2=11 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=1 | F2=12 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=2 | F2=13 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=3 | F2=14 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=4 | F2=15 | F3=lakshya | F4=11.220000 | F5=20.250000 | DATE=2007-3-30 | TIME=12:29:30 | TIMESTAMP=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 + +F1=5 | F2=16 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=17 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=18 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=19 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=20 | F3=jitendra | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +10 Rows fetched +Table dropped diff --git a/test/sqlapi/Parameter/exp.test005 b/test/sqlapi/Parameter/exp.test005 new file mode 100644 index 00000000..28541c3e --- /dev/null +++ b/test/sqlapi/Parameter/exp.test005 @@ -0,0 +1,24 @@ +Table T1 created +Total rows inserted 20 +F1=0 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=1 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=2 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=3 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=4 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=5 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=0 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=1 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=2 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=3 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=4 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=5 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=6 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=7 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=8 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=9 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +Total row fetched=20 +Table dropped diff --git a/test/sqlapi/Parameter/exp.test005n b/test/sqlapi/Parameter/exp.test005n new file mode 100644 index 00000000..28541c3e --- /dev/null +++ b/test/sqlapi/Parameter/exp.test005n @@ -0,0 +1,24 @@ +Table T1 created +Total rows inserted 20 +F1=0 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=1 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=2 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=3 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=4 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=5 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=0 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=1 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=2 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=3 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=4 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=5 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=6 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=7 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=8 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=9 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +Total row fetched=20 +Table dropped diff --git a/test/sqlapi/Parameter/exp.test006 b/test/sqlapi/Parameter/exp.test006 new file mode 100644 index 00000000..b09014f0 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test006 @@ -0,0 +1,16 @@ +Table created +10 Rows inserted +noOfParamFields return=8 +5 Rows updated +F1=0 | F2=11 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=1 | F2=12 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=2 | F2=13 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=3 | F2=14 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=4 | F2=15 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=5 | F2=16 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=17 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=18 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=19 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=20 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +10 Rows fetched +Table dropped diff --git a/test/sqlapi/Parameter/exp.test006.x86_64 b/test/sqlapi/Parameter/exp.test006.x86_64 new file mode 100644 index 00000000..b09014f0 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test006.x86_64 @@ -0,0 +1,16 @@ +Table created +10 Rows inserted +noOfParamFields return=8 +5 Rows updated +F1=0 | F2=11 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=1 | F2=12 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=2 | F2=13 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=3 | F2=14 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=4 | F2=15 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=5 | F2=16 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=17 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=18 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=19 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=20 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +10 Rows fetched +Table dropped diff --git a/test/sqlapi/Parameter/exp.test006n b/test/sqlapi/Parameter/exp.test006n new file mode 100644 index 00000000..b09014f0 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test006n @@ -0,0 +1,16 @@ +Table created +10 Rows inserted +noOfParamFields return=8 +5 Rows updated +F1=0 | F2=11 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=1 | F2=12 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=2 | F2=13 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=3 | F2=14 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=4 | F2=15 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=5 | F2=16 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=17 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=18 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=19 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=20 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +10 Rows fetched +Table dropped diff --git a/test/sqlapi/Parameter/exp.test006n.x86_64 b/test/sqlapi/Parameter/exp.test006n.x86_64 new file mode 100644 index 00000000..b09014f0 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test006n.x86_64 @@ -0,0 +1,16 @@ +Table created +10 Rows inserted +noOfParamFields return=8 +5 Rows updated +F1=0 | F2=11 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=1 | F2=12 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=2 | F2=13 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=3 | F2=14 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=4 | F2=15 | F3=NULL | F4=11.220000 | F5=20.250000 | F6=NULL | F7=12:29:30 | F8=2007-3-30 10:25:55 | F9=20 | F10=15000 | AB12 +F1=5 | F2=16 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=17 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=18 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=19 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=20 | F3=jitendra | F4=5.500000 | F5=10.500000 | F6=2008-01-21 | F7=12:29:30 | F8=2008-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +10 Rows fetched +Table dropped diff --git a/test/sqlapi/Parameter/exp.test007 b/test/sqlapi/Parameter/exp.test007 new file mode 100644 index 00000000..43989242 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test007 @@ -0,0 +1,24 @@ +Table created +SELECT * FROM T1; +F1=2008-10-21 | F2=0 | F3=Nihar0 +F1=2009-11-10 | F2=1 | F3=Nihar1 +F1=2008-10-24 | F2=2 | F3=Nihar2 +F1=2009-11-10 | F2=3 | F3=Nihar3 +F1=2008-10-21 | F2=4 | F3=Nihar4 +F1=2009-11-10 | F2=5 | F3=Nihar5 +6 Rows fetched +SELECT * FROM T1 WHERE F1='2009-11-10'; +F1=2009-11-10 | F2=1 | F3=Nihar1 +F1=2009-11-10 | F2=3 | F3=Nihar3 +F1=2009-11-10 | F2=5 | F3=Nihar5 +3 Rows fetched +SELECT * FROM T1 where F2 >= ? and F3 <= ?; +F1=2009-11-10 | F2=1 | F3=Nihar1 +F1=2008-10-24 | F2=2 | F3=Nihar2 +F1=2009-11-10 | F2=3 | F3=Nihar3 +3 Rows fetched +SELECT * FROM T1 where F1='2009-11-10' and F2 >= ? and F3 <= ?; +F1=2009-11-10 | F2=1 | F3=Nihar1 +F1=2009-11-10 | F2=3 | F3=Nihar3 +2 Rows fetched +Table dropped diff --git a/test/sqlapi/Parameter/exp.test007n b/test/sqlapi/Parameter/exp.test007n new file mode 100644 index 00000000..43989242 --- /dev/null +++ b/test/sqlapi/Parameter/exp.test007n @@ -0,0 +1,24 @@ +Table created +SELECT * FROM T1; +F1=2008-10-21 | F2=0 | F3=Nihar0 +F1=2009-11-10 | F2=1 | F3=Nihar1 +F1=2008-10-24 | F2=2 | F3=Nihar2 +F1=2009-11-10 | F2=3 | F3=Nihar3 +F1=2008-10-21 | F2=4 | F3=Nihar4 +F1=2009-11-10 | F2=5 | F3=Nihar5 +6 Rows fetched +SELECT * FROM T1 WHERE F1='2009-11-10'; +F1=2009-11-10 | F2=1 | F3=Nihar1 +F1=2009-11-10 | F2=3 | F3=Nihar3 +F1=2009-11-10 | F2=5 | F3=Nihar5 +3 Rows fetched +SELECT * FROM T1 where F2 >= ? and F3 <= ?; +F1=2009-11-10 | F2=1 | F3=Nihar1 +F1=2008-10-24 | F2=2 | F3=Nihar2 +F1=2009-11-10 | F2=3 | F3=Nihar3 +3 Rows fetched +SELECT * FROM T1 where F1='2009-11-10' and F2 >= ? and F3 <= ?; +F1=2009-11-10 | F2=1 | F3=Nihar1 +F1=2009-11-10 | F2=3 | F3=Nihar3 +2 Rows fetched +Table dropped diff --git a/test/sqlapi/Parameter/paratest1.c b/test/sqlapi/Parameter/paratest1.c new file mode 100644 index 00000000..2f29fdb7 --- /dev/null +++ b/test/sqlapi/Parameter/paratest1.c @@ -0,0 +1,141 @@ +/* create table T1 with 10 fields. + * insert some records into it. + * noOfParamFields() should return 10. + * getParamFldInfo() for all fields and print the field info. + * select * from T1; + + * Author : Jitendra Lenka. + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con= createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT, F11 BINARY(4));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 100; + short int f2var = 10; + char f3var[32]="jitendra"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2007,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2007,01,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + char f11var[8]="23fe"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } +//**************************************************************************** + int nop; + nop = stmt->noOfParamFields(); + printf("noOfParamField Returns=%d\n",nop); + //getParamFldInfo() + FieldInfo *field = new FieldInfo(); + char fldName[20]; + DataType type; + size_t length; + int offset; + char defaultValueBuf[10]; + bool isNull; + bool isDefault; + for(int i=1;i<=11;i++) { + printf("\n***********************************************\n"); + printf("%d FIELD INFORMATION ::\n",i);; + rv = stmt->getParamFldInfo(i,field); + if(rv!=OK) { delete stmt; delete con; return 1; } + printf("Field Name :%s\n", field->fldName); + printf("Data type of the field :%d\n",field->type); + printf("length of the field :%d\n",field->length); + printf("Offset :%d\n",field->offset); + printf("Default value :%s\n",field->defaultValueBuf); + printf("Null field :%d\n",field->isNull); + printf("Default value :%d\n",field->isDefault); + printf("***********************************************\n"); + } + delete field; + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if (rv!=OK) break; + f1var=i; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setFloatParam(5,f5var); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setBinaryParam(11,f11var,8); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("Total rows inserted %d\n",count); + stmt->free(); + //********************************************************** + // SELECT * FROM T1; + strcpy(statement,"SELECT * FROM T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%f | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld \n",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var); + printf(" | "); + AllDataType::printVal(f11var,typeBinary,4); + printf("\n"); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("Total row fetched=%d\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); + delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Parameter/paratest100.c b/test/sqlapi/Parameter/paratest100.c new file mode 100644 index 00000000..7a76602a --- /dev/null +++ b/test/sqlapi/Parameter/paratest100.c @@ -0,0 +1,157 @@ +/* create table T1 with 10 fields. + * insert some records into it. + * update T1 WITH ALL 7 PARAMETERS. + noOfParamFields() should return 7. + * select * from T1; + + * Author : Jitendra Lenka. + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con= createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT);"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 1; } + stmt->free(); + printf("Table created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?);"); + int f1var = 0; + short int f2var = 10; + char f3var[32]="jitendra"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2008,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2008,01,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + f1var=i; + f2var++; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setFloatParam(5,f5var); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("%d Rows inserted \n",count); + stmt->free(); + //********************************************************** + // UPDATE TABLE + strcpy(statement,"UPDATE T1 SET F10=?,F8=?,F6=?,F5=?,F4=?,F3=? WHERE F2=?;"); + rv = stmt->prepare(statement); + int nop; + nop = stmt->noOfParamFields(); + printf("noOfParamFields return=%d\n",nop); + if(nop!=7)return 1; + /*stmt->bindField(1,&f10var); + stmt->bindField(2,&f8var); + stmt->bindField(3,&f6var); + stmt->bindField(4,&f5var); + stmt->bindField(5,&f4var); + stmt->bindField(6,f3var); + stmt->bindField(7,&f2var);*/ + long long f10var1=15000; + TimeStamp f8var1; + f8var1.setDate(2007,3,30); + f8var1.setTime(10,25,55); + Date f6var1; + f6var1.set(2007,3,30); + float f5var1=20.25; + float f4var1=11.22; + char f3var1[10]="lakshya"; + short int f2var1=10; + count=0; + for(int i=0;i<5;i++) { + f2var1++; + f5var1++; + f4var1++; + rv = con->beginTrans(); + if(rv!=OK)break; + // f2var1++; + stmt->setShortParam(7,f2var1); + stmt->setLongLongParam(1,f10var1); + stmt->setTimeStampParam(2,f8var1); + stmt->setDateParam(3,f6var1); + stmt->setFloatParam(4,f5var1); + stmt->setFloatParam(5,f4var1); + stmt->setStringParam(6,f3var1); + //stmt->setShortParam(7,f2var1); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + stmt->free(); + printf("%d Rows updated\n",count); + //********************************************************** + // SELECT * FROM T1; + strcpy(statement,"SELECT * FROM T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(f1var==5)printf("\n"); + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%f | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld \n",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("%d Rows fetched=%d\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Parameter/paratest2.c b/test/sqlapi/Parameter/paratest2.c new file mode 100644 index 00000000..a1fe6764 --- /dev/null +++ b/test/sqlapi/Parameter/paratest2.c @@ -0,0 +1,133 @@ +/* create table T1 with 10 fields. + * insert some records into it. + * select * from T1 with where clause; + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con= createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT, F11 BINARY(4));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 2; } + stmt->free(); + printf("Table created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 100; + short int f2var = 10; + char f3var[32]="jitendra"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2007,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2007,01,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + char f11var[8]="23fe"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 3; } + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if (rv!=OK) break; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setFloatParam(5,f5var); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setBinaryParam(11,f11var, 8); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if (rv != OK) break; + count++; + } + printf("Total rows inserted %d\n",count); + stmt->free(); + //********************************************************** + // SELECT * FROM T1; + strcpy(statement,"SELECT * FROM T1 WHERE F1=? AND F2=? AND F3=? AND F4=? AND F5=? AND F6=? AND F7=? AND F8=? AND F9=? AND F10=? AND F11=?;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,f11var); + int f1var1=100; + short int f2var1=10; + char f3var1[20]="jitendra"; + float f4var1=5.5; + float f5var1=10.50; + Date f6var1; + f6var1.set(2007,1,21); + Time f7var1; + f7var1.set(12,29,30); + TimeStamp f8var1; + f8var1.setDate(2007,1,21); + f8var1.setTime(12,29,30); + int f9var1=20; + long long f10var1=12000; + char f11var1[8]="23fe"; + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 5; + stmt->setIntParam(1,f1var1); + stmt->setShortParam(2,f2var1); + stmt->setStringParam(3,f3var1); + stmt->setFloatParam(4,f4var1); + stmt->setFloatParam(5,f5var1); + stmt->setDateParam(6,f6var1); + stmt->setTimeParam(7,f7var1); + stmt->setTimeStampParam(8,f8var1); + stmt->setIntParam(9,f9var1); + stmt->setLongLongParam(10,f10var1); + stmt->setBinaryParam(11,f11var1, 8); + stmt->execute(rows); + while(stmt->fetch()!=NULL) { + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%f | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var); + printf(" | "); + AllDataType::printVal(f11var,typeBinary,4); + printf("\n"); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv!=OK)return 6; + stmt->free(); + printf("%d Tuples fetched\n",count); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK){delete stmt; delete con; return -1;} + rv = stmt->execute(rows); + if(rv!=OK){delete stmt;delete con;return -1;} + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Parameter/paratest3.c b/test/sqlapi/Parameter/paratest3.c new file mode 100644 index 00000000..2545e3fb --- /dev/null +++ b/test/sqlapi/Parameter/paratest3.c @@ -0,0 +1,153 @@ +/* create table T1 with 10 fields. + * insert some records into it. + * delete records from T1 with where clause + * select * from T1; + + * Author : Jitendra Lenka. + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT, F11 BINARY(4));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table T1 created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 0; + short int f2var = 1; + char f3var[32]="jitendra"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2007,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2007,01,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + char f11var[12]="23fe"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + f1var=i; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setFloatParam(5,f5var); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setBinaryParam(11,f11var, 12); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("Total rows inserted %d\n",count); + stmt->free(); + //********************************************************* + // delete records from the T1 + strcpy(statement,"DELETE FROM T1 WHERE F10=? AND F9=? AND F8=? AND F7=? AND F6=? AND F5=? AND F4=? AND F3=? AND F2=? AND F1=? AND F11=?;"); + rv = stmt->prepare(statement); + if(rv!=OK){delete stmt;delete con;return -1;} + short int f2var1=1; + char f3var1[32] ="jitendra"; + float f4var1 = 5.5; + float f5var1 = 10.50; + Date f6var1; + f6var1.set(2007,1,21); + Time f7var1; + f7var1.set(12,29,30); + TimeStamp f8var1; + f8var1.setDate(2007,1,21); + f8var1.setTime(12,29,30); + int f9var1=20; + long long f10var1=12000; + char f11var1[12]="23fe"; + count=0; + for(int i=5;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK)break; + stmt->setLongLongParam(1,f10var1); + stmt->setIntParam(2,f9var1); + stmt->setTimeStampParam(3,f8var1); + stmt->setTimeParam(4,f7var1); + stmt->setDateParam(5,f6var1); + stmt->setFloatParam(6,f5var1); + stmt->setFloatParam(7,f4var1); + stmt->setStringParam(8,f3var1); + stmt->setShortParam(9,f2var1); + stmt->setIntParam(10,i); + stmt->setBinaryParam(11,f11var, 12); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + stmt->free(); + printf("Total row deleted=%d\n",count); + //********************************************************** + // SELECT * FROM T1; + strcpy(statement,"SELECT * FROM T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%f | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld ",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var); + printf(" | "); + AllDataType::printVal(f11var,typeBinary,4); + printf("\n"); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("Total row fetched=%d\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Parameter/paratest4.c b/test/sqlapi/Parameter/paratest4.c new file mode 100644 index 00000000..ec4fcba0 --- /dev/null +++ b/test/sqlapi/Parameter/paratest4.c @@ -0,0 +1,155 @@ +/* create table T1 with 10 fields. + * insert some records into it. + * update T1 WITH ALL 8 PARAMETERS. + noOfParamFields() should return 8. + * select * from T1; + + * Author : Jitendra Lenka. + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT, F11 BINARY(4));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 1; } + stmt->free(); + printf("Table created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 0; + short int f2var = 10; + char f3var[32]="jitendra"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2008,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2008,01,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + char f11var[8]="23fe"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + f1var=i; + f2var++; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setFloatParam(5,f5var); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setBinaryParam(11,f11var,8); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("%d Rows inserted \n",count); + stmt->free(); + //********************************************************** + // UPDATE TABLE + strcpy(statement,"UPDATE T1 SET F10=?,F8=?,F6=?,F5=?,F4=?,F3=?,F11=? WHERE F2=?;"); + rv = stmt->prepare(statement); + int nop; + nop = stmt->noOfParamFields(); + printf("noOfParamFields return=%d\n",nop); + if(nop!=8)return 1; + long long f10var1=15000; + TimeStamp f8var1; + f8var1.setDate(2007,3,30); + f8var1.setTime(10,25,55); + Date f6var1; + f6var1.set(2007,3,30); + float f5var1=20.25; + float f4var1=11.22; + char f3var1[10]="lakshya"; + char f11var1[8]="ab12"; + short int f2var1=10; + count=0; + for(int i=0;i<5;i++) { + rv = con->beginTrans(); + if(rv!=OK)break; + f2var1++; + stmt->setShortParam(8,f2var1); + stmt->setLongLongParam(1,f10var1); + stmt->setTimeStampParam(2,f8var1); + stmt->setDateParam(3,f6var1); + stmt->setFloatParam(4,f5var1); + stmt->setFloatParam(5,f4var1); + stmt->setStringParam(6,f3var1); + stmt->setBinaryParam(7,f11var1, 8); + //stmt->setShortParam(7,f2var1); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + stmt->free(); + printf("%d Rows updated\n",count); + //********************************************************** + // SELECT * FROM T1; + strcpy(statement,"SELECT * FROM T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(f1var==5)printf("\n"); + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%f | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var); + printf(" | "); + AllDataType::printVal(f11var,typeBinary,4); + printf("\n"); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("%d Rows fetched\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Parameter/paratest5.c b/test/sqlapi/Parameter/paratest5.c new file mode 100644 index 00000000..f8df5acf --- /dev/null +++ b/test/sqlapi/Parameter/paratest5.c @@ -0,0 +1,159 @@ +/* create table T1 with 10 fields. + * insert some records into it with null values + * delete records from T1 with where clause + * + * select * from T1; + + * Author : Jitendra Lenka. + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT, F11 BINARY(4));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table T1 created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 0; + short int f2var = 1; + char f3var[32]="jitendra"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2007,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2007,01,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + char f11var[12]="23fe"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + f1var=i; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setNull(5); + stmt->setDateParam(6,f6var); + stmt->setNull(7); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setBinaryParam(11,f11var, 12); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + stmt->free(); + //********************************************************* + // Insert with value list records from the T1 + strcpy(statement,"INSERT INTO T1(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10) VALUES(?,?,?,?,?,?,?,?,?,?);"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + f1var=i; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setNull(5); + stmt->setDateParam(6,f6var); + stmt->setNull(7); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("Total rows inserted %d\n",count); + stmt->free(); + + //********************************************************** + // SELECT * FROM T1; + strcpy(statement,"SELECT * FROM T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("F1=NULL | "); + else printf("F1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("F2=NULL | "); + else printf("F2=%hd | ", f2var); + if(stmt->isFldNull(3)) printf("F3=NULL | "); + else printf("F3=%s | ", f3var); + if(stmt->isFldNull(4)) printf("F4=NULL | "); + else printf("F4=%f | ", f4var); + if(stmt->isFldNull(5)) printf("F5=NULL | "); + else printf("F5=%f | ", f5var); + if(stmt->isFldNull(6)) printf("F6=NULL | "); + else printf("F6=%02d-%02d-%02d | ",f6var.year(), f6var.month(), f6var.dayOfMonth()); + if(stmt->isFldNull(7)) printf("F7=NULL | "); + else printf("F7=%02d:%02d:%02d | ", f7var.hours(),f7var.minutes(),f7var.seconds()); + if(stmt->isFldNull(8)) printf("F8=NULL | "); + else printf("F8=%d-%d-%d %d:%d:%d | ", f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds()); + if(stmt->isFldNull(9)) printf("F9=NULL | "); + else printf("F9=%d | ", f9var); + if(stmt->isFldNull(10)) printf("F10=NULL | "); + else printf("F10=%lld | ", f10var); + if(stmt->isFldNull(11)) printf("F11=NULL | "); + else { AllDataType::printVal(f11var,typeBinary,4); + } + printf("\n"); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("Total row fetched=%d\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Parameter/paratest6.c b/test/sqlapi/Parameter/paratest6.c new file mode 100644 index 00000000..afb0cfc0 --- /dev/null +++ b/test/sqlapi/Parameter/paratest6.c @@ -0,0 +1,207 @@ +/* create table T1 with 10 fields. + * insert some records into it. + * update T1 with some Null values in the parameter. + noOfParamFields() should return 8. + * select * from T1; + + * Author : Jitendra Lenka. + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT, F11 BINARY(4));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 1; } + stmt->free(); + printf("Table created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 0; + short int f2var = 10; + char f3var[32]="jitendra"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2008,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2008,01,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + char f11var[8]="23fe"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + f1var=i; + f2var++; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setFloatParam(5,f5var); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setBinaryParam(11,f11var,8); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("%d Rows inserted \n",count); + stmt->free(); + //********************************************************** + // UPDATE TABLE + strcpy(statement,"UPDATE T1 SET F10=?,F8=?,F6=?,F5=?,F4=?,F3=?,F11=? WHERE F2=?;"); + rv = stmt->prepare(statement); + int nop; + nop = stmt->noOfParamFields(); + printf("noOfParamFields return=%d\n",nop); + if(nop!=8)return 1; + long long f10var1=15000; + TimeStamp f8var1; + f8var1.setDate(2007,3,30); + f8var1.setTime(10,25,55); + Date f6var1; + f6var1.set(2007,3,30); + float f5var1=20.25; + float f4var1=11.22; + char f3var1[10]="lakshya"; + char f11var1[8]="ab12"; + short int f2var1=10; + count=0; + for(int i=0;i<5;i++) { + rv = con->beginTrans(); + if(rv!=OK)break; + f2var1++; + stmt->setShortParam(8,f2var1); + stmt->setLongLongParam(1,f10var1); + stmt->setTimeStampParam(2,f8var1); + stmt->setNull(3); + stmt->setFloatParam(4,f5var1); + stmt->setFloatParam(5,f4var1); + stmt->setNull(6); + stmt->setBinaryParam(7,f11var1, 8); + //stmt->setShortParam(7,f2var1); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + stmt->free(); + printf("%d Rows updated\n",count); + //********************************************************** + // SELECT * FROM T1; + strcpy(statement,"SELECT * FROM T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("F1=NULL | "); + else printf("F1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("F2=NULL | "); + else printf("F2=%hd | ", f2var); + if(stmt->isFldNull(3)) printf("F3=NULL | "); + else printf("F3=%s | ", f3var); + if(stmt->isFldNull(4)) printf("F4=NULL | "); + else printf("F4=%f | ", f4var); + if(stmt->isFldNull(5)) printf("F5=NULL | "); + else printf("F5=%f | ", f5var); + if(stmt->isFldNull(6)) printf("F6=NULL | "); + else printf("F6=%02d-%02d-%02d | ",f6var.year(), f6var.month(), f6var.dayOfMonth()); + if(stmt->isFldNull(7)) printf("F7=NULL | "); + else printf("F7=%02d:%02d:%02d | ", f7var.hours(),f7var.minutes(),f7var.seconds()); + if(stmt->isFldNull(8)) printf("F8=NULL | "); + else printf("F8=%d-%d-%d %d:%d:%d | ", f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds()); + if(stmt->isFldNull(9)) printf("F9=NULL | "); + else printf("F9=%d | ", f9var); + if(stmt->isFldNull(10)) printf("F10=NULL | "); + else printf("F10=%lld | ", f10var); + if(stmt->isFldNull(11)) printf("F11=NULL | "); + else { AllDataType::printVal(f11var,typeBinary,4); + } + printf("\n"); + count++; + } +/* + if(f1var==5)printf("\n"); + if(stmt->isFldNull(1)) + printf("f1=null "); + if(stmt->isFldNull(2)) + printf("f2=null "); + if(stmt->isFldNull(3)) + printf("f3=null "); + if(stmt->isFldNull(4)) + printf("f4=null "); + if(stmt->isFldNull(5)) + printf("f5=null "); + if(stmt->isFldNull(6)) + printf("f6=null "); + if(stmt->isFldNull(7)) + printf("f7=null "); + if(stmt->isFldNull(8)) + printf("f8=null "); + if(stmt->isFldNull(9)) + printf("f9=null "); + if(stmt->isFldNull(10)) + printf("f10=null "); + if(stmt->isFldNull(11)) + printf("f11=null \n"); + + printf("\n"); + + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%f | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var); + printf(" | "); + AllDataType::printVal(f11var,typeBinary,4); + printf("\n"); + count++; + }*/ + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("%d Rows fetched\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Parameter/paratest7date.c b/test/sqlapi/Parameter/paratest7date.c new file mode 100644 index 00000000..58535846 --- /dev/null +++ b/test/sqlapi/Parameter/paratest7date.c @@ -0,0 +1,140 @@ +/* select tuple with WHERE clause having param for some fields + Create a table having f1 date, f2 tnt and f3 string + Insert 5-6 records + Execute SELECT * FROM T1 WHERE f1='Date Value' AND f2=? AND f3=?; + Author : Nihar Paital. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 DATE,F2 INT,F3 CHAR(10));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table created\n"); + con->beginTrans(); + stmt->prepare("INSERT INTO T1 values('2008-10-21',0,'Nihar0');"); + stmt->execute(rows); + stmt->prepare("INSERT INTO T1 values('2009-11-10',1,'Nihar1');"); + stmt->execute(rows); + stmt->prepare("INSERT INTO T1 values('2008-10-24',2,'Nihar2');"); + stmt->execute(rows); + stmt->prepare("INSERT INTO T1 values('2009-11-10',3,'Nihar3');"); + stmt->execute(rows); + stmt->prepare("INSERT INTO T1 values('2008-10-21',4,'Nihar4');"); + stmt->execute(rows); + stmt->prepare("INSERT INTO T1 values('2009-11-10',5,'Nihar5');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + //********************************************************** + // SELECT * FROM T1; + Date f1var; + f1var.set(2001,01,01); + int f2var=0; + char f3var[32]="CSQL"; + printf("SELECT * FROM T1;\n"); + strcpy(statement,"SELECT * FROM T1;"); + stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + int count=0; + con->beginTrans(); + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%02d-%02d-%02d | F2=%d | F3=%s",f1var.year(), f1var.month(), f1var.dayOfMonth(), f2var,f3var); + printf("\n"); + count++; + } + stmt->close(); + con->commit(); + printf("%d Rows fetched\n",count); + stmt->free(); + + printf("SELECT * FROM T1 WHERE F1='2009-11-10';\n"); + strcpy(statement,"SELECT * FROM T1 WHERE F1='2009-11-10';"); + stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + count=0; + con->beginTrans(); + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%02d-%02d-%02d | F2=%d | F3=%s",f1var.year(), f1var.month(), f1var.dayOfMonth(), f2var,f3var); + printf("\n"); + count++; + } + stmt->close(); + con->commit(); + printf("%d Rows fetched\n",count); + stmt->free(); + + printf("SELECT * FROM T1 where F2 >= ? and F3 <= ?;\n"); + strcpy(statement,"SELECT * FROM T1 where F2 >= ? and F3 <= ?;"); + stmt->prepare(statement); + f2var=1; + strcpy(f3var,"Nihar3"); + stmt->setIntParam(1,f2var); + stmt->setStringParam(2,f3var); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + count=0; + con->beginTrans(); + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%02d-%02d-%02d | F2=%d | F3=%s",f1var.year(), f1var.month(), f1var.dayOfMonth(), f2var,f3var); + printf("\n"); + count++; + } + stmt->close(); + con->commit(); + printf("%d Rows fetched\n",count); + stmt->free(); + + printf("SELECT * FROM T1 where F1='2009-11-10' and F2 >= ? and F3 <= ?;\n"); + strcpy(statement,"SELECT * FROM T1 where F1='2009-11-10' and F2 >= ? and F3 <= ?;"); + stmt->prepare(statement); + f2var=1; + strcpy(f3var,"Nihar3"); + stmt->setIntParam(1,f2var); + stmt->setStringParam(2,f3var); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + count=0; + con->beginTrans(); + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%02d-%02d-%02d | F2=%d | F3=%s",f1var.year(), f1var.month(), f1var.dayOfMonth(), f2var,f3var); + printf("\n"); + count++; + } + stmt->close(); + con->commit(); + printf("%d Rows fetched\n",count); + stmt->free(); + + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 5; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Parameter/paratest8now.c b/test/sqlapi/Parameter/paratest8now.c new file mode 100644 index 00000000..452432aa --- /dev/null +++ b/test/sqlapi/Parameter/paratest8now.c @@ -0,0 +1,140 @@ +/* select tuple with WHERE clause having param for some fields + Create a table having f1 date, f2 tnt and f3 string + Insert 5-6 records + Execute SELECT * FROM T1 WHERE f1='now' AND f2=? AND f3=?; + Author : Nihar Paital. +*/ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 DATE,F2 INT,F3 CHAR(10));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table created\n"); + con->beginTrans(); + stmt->prepare("INSERT INTO T1 values('2008-10-21',0,'Nihar0');"); + stmt->execute(rows); + stmt->prepare("INSERT INTO T1 values('now',1,'Nihar1');"); + stmt->execute(rows); + stmt->prepare("INSERT INTO T1 values('2008-10-24',2,'Nihar2');"); + stmt->execute(rows); + stmt->prepare("INSERT INTO T1 values('now',3,'Nihar3');"); + stmt->execute(rows); + stmt->prepare("INSERT INTO T1 values('2008-10-21',4,'Nihar4');"); + stmt->execute(rows); + stmt->prepare("INSERT INTO T1 values('now',5,'Nihar5');"); + stmt->execute(rows); + con->commit(); + stmt->free(); + //********************************************************** + // SELECT * FROM T1; + Date f1var; + f1var.set(2001,01,01); + int f2var=0; + char f3var[32]="CSQL"; + printf("SELECT * FROM T1;\n"); + strcpy(statement,"SELECT * FROM T1;"); + stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + int count=0; + con->beginTrans(); + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%02d-%02d-%02d | F2=%d | F3=%s",f1var.year(), f1var.month(), f1var.dayOfMonth(), f2var,f3var); + printf("\n"); + count++; + } + stmt->close(); + con->commit(); + printf("%d Rows fetched\n",count); + stmt->free(); + + printf("SELECT * FROM T1 WHERE F1='now';\n"); + strcpy(statement,"SELECT * FROM T1 WHERE F1='now';"); + stmt->prepare(statement); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + count=0; + con->beginTrans(); + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%02d-%02d-%02d | F2=%d | F3=%s",f1var.year(), f1var.month(), f1var.dayOfMonth(), f2var,f3var); + printf("\n"); + count++; + } + stmt->close(); + con->commit(); + printf("%d Rows fetched\n",count); + stmt->free(); + + printf("SELECT * FROM T1 where F2 >= ? and F3 <= ?;\n"); + strcpy(statement,"SELECT * FROM T1 where F2 >= ? and F3 <= ?;"); + stmt->prepare(statement); + f2var=1; + strcpy(f3var,"Nihar3"); + stmt->setIntParam(1,f2var); + stmt->setStringParam(2,f3var); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + count=0; + con->beginTrans(); + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%02d-%02d-%02d | F2=%d | F3=%s",f1var.year(), f1var.month(), f1var.dayOfMonth(), f2var,f3var); + printf("\n"); + count++; + } + stmt->close(); + con->commit(); + printf("%d Rows fetched\n",count); + stmt->free(); + + printf("SELECT * FROM T1 where F1='now' and F2 >= ? and F3 <= ?;\n"); + strcpy(statement,"SELECT * FROM T1 where F1='now' and F2 >= ? and F3 <= ?;"); + stmt->prepare(statement); + f2var=1; + strcpy(f3var,"Nihar3"); + stmt->setIntParam(1,f2var); + stmt->setStringParam(2,f3var); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + count=0; + con->beginTrans(); + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%02d-%02d-%02d | F2=%d | F3=%s",f1var.year(), f1var.month(), f1var.dayOfMonth(), f2var,f3var); + printf("\n"); + count++; + } + stmt->close(); + con->commit(); + printf("%d Rows fetched\n",count); + stmt->free(); + + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 5; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/Makefile b/test/sqlapi/Select/Makefile new file mode 100644 index 00000000..8d50c2ef --- /dev/null +++ b/test/sqlapi/Select/Makefile @@ -0,0 +1,116 @@ +OSNAME = $(shell uname -s) +PlatForm=notsupported +ifeq ($(OSNAME), SunOS) + CPlus = CC + CPlusFlags = -O2 -w $(COMPILER_FLAG) + SYSLIBS=-ldl -lnsl -lsocket -lposix4 + PlatForm=supported +endif +ifeq ($(OSNAME), Linux) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif +ifeq ($(OSNAME), FreeBSD) + CPlus = g++ + CPlusFlags = -g -w + SYSLIBS= -rdynamic -lrt -lpthread -lcrypt + PlatForm=supported +endif + + +INCL= -I$(CSQL_INSTALL_ROOT)/install/include -I../../../include +ifeq ($(BUILDTYPE), MMDB) +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcsqlsqlnw +else +LIBS= -L$(CSQL_INSTALL_ROOT)/lib -lcsqlsql -lcsql -lcsqlsqllog -lcsqlnw -lcacheload -lcsqlsqlnw -lcsqlgw -lcsqlodbcadapter +endif + +TARGETS = \ + test001 test001n\ + test002 test002n\ + test003 test003n\ + test004 test004n\ + test005 test005n\ + test006 test006n\ + test007 test007n\ + test008 test008n\ + test009 test009n\ + test010 test010n\ + test011 test011n\ + test012 test012n\ + test013 test013n\ + test014 test015\ + test016 test016n\ + + +ifeq ($(PlatForm), supported) +all: $(TARGETS) +else +all: + echo "CSQL is not supported on $(OSNAME) platform" +endif + +test001: selecttest1.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test001n: selecttest1.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002:selecttest2.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test002n: selecttest2.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003:selecttest3.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test003n: selecttest3.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004:selecttest4.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test004n: selecttest4.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005:selecttest5.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test005n: selecttest5.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006:selecttest6.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test006n: selecttest6.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test007:selecttest7.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test007n: selecttest7.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test008:selecttest8.c + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test008n: selecttest8.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test009:selecttest9.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test009n: selecttest9.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test010:selecttest10.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test010n: selecttest10.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test011:selecttest11.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test011n:selecttest11.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test012:selecttest12.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test012n:selecttest12.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test013:selecttest13.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test013n:selecttest13.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test014:aggseltest14.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test015:selecttest14.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test016:singleconn.c common.h + $(CPlus) $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +test016n:singleconn.c common.h + $(CPlus) -DNETWORK $(CPlusFlags) -o $@ $< $(INCL) $(LIBS) $(SYSLIBS) +clean: + rm -f *.o ${TARGETS} diff --git a/test/sqlapi/Select/aggseltest14.c b/test/sqlapi/Select/aggseltest14.c new file mode 100644 index 00000000..ed8b99df --- /dev/null +++ b/test/sqlapi/Select/aggseltest14.c @@ -0,0 +1,170 @@ +/* create table T1 with 10 fields. + * insert some records into it with null values + * + * + * select * from T1; + + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT, F11 BINARY(4));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table T1 created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 0; + short int f2var = 1; + char f3var[32]="jitendra"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2007,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2007,01,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + char f11var[12]="23fe"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + f1var=i; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setNull(5); + stmt->setDateParam(6,f6var); + stmt->setNull(7); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setBinaryParam(11,f11var, 12); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + stmt->free(); + //********************************************************* + // Insert with value list records from the T1 + strcpy(statement,"INSERT INTO T1(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10) VALUES(?,?,?,?,?,?,?,?,?,?);"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + f1var=i; + stmt->setNull(1); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setNull(5); + stmt->setDateParam(6,f6var); + stmt->setNull(7); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("Total rows inserted %d\n",count); + stmt->free(); + int cnt = 0; + int max = 0; + int min = 0; + double avg = 0; + long long sum = 0; + //********************************************************** + // SELECT * FROM T1; + strcpy(statement,"SELECT count(F1), MAX(F1), MIN(F2), avg(F9), sum(F10) FROM T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&cnt); + stmt->bindField(2,&max); + stmt->bindField(3,&min); + stmt->bindField(4,&avg); + stmt->bindField(5,&sum); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("select count(*) from T1 = %d\n", cnt); + printf("select max(F1) from T1 = %d\n", max); + printf("select min(F2) from T1 = %d\n", min); + printf("select avg(F9) from T1 = %lf\n", avg); + printf("select sum(F10) from T1 = %d\n", sum); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("Total row fetched=%d\n",count); + stmt->free(); + strcpy(statement,"SELECT F1,F2,F3,F4,F5 FROM T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull("F1")) printf("F1=NULL | "); + else printf("F1=%d | ", f1var); + if(stmt->isFldNull("F2")) printf("F2=NULL | "); + else printf("F2=%hd | ", f2var); + if(stmt->isFldNull("F3")) printf("F3=NULL | "); + else printf("F3=%s | ", f3var); + if(stmt->isFldNull("F4")) printf("F4=NULL | "); + else printf("F4=%f | ", f4var); + if(stmt->isFldNull("F5")) printf("F5=NULL | "); + else printf("F5=%f | ", f5var); + printf("\n"); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("Total row fetched=%d\n",count); + stmt->free(); +//========================== + + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/common.h b/test/sqlapi/Select/common.h new file mode 100644 index 00000000..f1ab199a --- /dev/null +++ b/test/sqlapi/Select/common.h @@ -0,0 +1,37 @@ +#include +#include +#include + +AbsSqlConnection *createConnection() +{ +#ifdef NETWORK + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetwork); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKADAPTER + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkAdapter); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#elif defined NETWORKGATEWAY + AbsSqlConnection *con = SqlFactory::createConnection(CSqlNetworkGateway); + SqlNwConnection *conn = (SqlNwConnection *) con; + conn->setHost("localhost", 5678); +#else + AbsSqlConnection *con = SqlFactory::createConnection(CSql); +#endif + return con; +} + +AbsSqlStatement *createStatement() +{ +#ifdef NETWORK + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetwork); +#elif defined NETWORKADAPTER + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkAdapter); +#elif defined NETWORKGATEWAY + AbsSqlStatement *stmt = SqlFactory::createStatement(CSqlNetworkGateway); +#else + AbsSqlStatement *stmt = SqlFactory::createStatement(CSql); +#endif + return stmt; +} diff --git a/test/sqlapi/Select/create.sql b/test/sqlapi/Select/create.sql new file mode 100644 index 00000000..c709af22 --- /dev/null +++ b/test/sqlapi/Select/create.sql @@ -0,0 +1,61 @@ +echo create table t1 (f1 int,f2 int); +create table t1 (f1 int,f2 int); +echo check for SET AUTOCOMMIT OFF; +SET AUTOCOMMIT OFFer; +echo insert some record; +insert into t1 values(10,20); +insert into t1 values(20,30); +insert into t1 values(30,40); +insert into t1 values(40,50); +insert into t1 values(50,60); +echo rollback; +rollback; +echo select * from t1; +select * from t1; + +SET AUTOCOMMIT OFF; +insert into t1 values(30,40); +insert into t1 values(30,40); +insert into t1 values(30,40); +insert into t1 values(30,40); +insert into t1 values(30,40); +insert into t1 values(30,40); +insert into t1 values(30,40); +insert into t1 values(30,40); +insert into t1 values(30,40); +insert into t1 values(30,40); +echo test for commit; +commiter; +rollback; +select * from t1; + +echo test for rollback; +echo insert 5 records; + +insert into t1 values(20,40); +insert into t1 values(20,40); +insert into t1 values(20,40); +insert into t1 values(20,40); +insert into t1 values(20,40); +rollbacked; +commit; +select * from t1; + +echo check for show tables; +show tablesss; + +echo check for SET AUTOCOMMIT ON; + +SET AUTOCOMMIT ONNER; +echo insert some records; + +insert into t1 values(50,60); +insert into t1 values(50,60); +insert into t1 values(50,60); +insert into t1 values(50,60); +insert into t1 values(50,60); +rollback; +select * from t1; + +echo drop teble; +drop table t1; diff --git a/test/sqlapi/Select/csql.conf b/test/sqlapi/Select/csql.conf new file mode 100644 index 00000000..4febcacb --- /dev/null +++ b/test/sqlapi/Select/csql.conf @@ -0,0 +1,70 @@ +# CSQL System Configuration File + +#####################################Server Section######################## +#Important: For Server section parameters, make sure that the value is same for the +# server process and all the csql client process which connects to it. otherwise, +# behavior is undefined + +# Page size. Each database is logically divided into pages and allocation happens +# in this unit of pages. Increasing this value will reduce frequent allocation of pages. +PAGE_SIZE= 8192 + +#Total number of client process which can connect and work with the +# database concurrently +MAX_PROCS = 100 + +# Maximum size of the system database. +MAX_SYS_DB_SIZE=1048576 + +#Maximum size of the user database file. +MAX_DB_SIZE=10485760 + +#Shared memory key to be used by the system to create and locate system database. +SYS_DB_KEY=1199 + +#Shared memory key to be used by the system to create and locate user database. +USER_DB_KEY=2277 + +#Give full path for the log file where important system actions are stored. +LOG_FILE=/tmp/csql/log/log.out + +#The virtual memory start address at which the shared memory segment +# will be created and attached. +MAP_ADDRESS=400000000 + +#Give full path for the database file where table and record information will +#be stored for durability +DATABASE_FILE=/tmp/csql/db + +#Important: For Server section parameters, make sure that the value is same for the +# server process and all the csql client process which connects to it. otherwise, +# behavior is undefined +#####################################Client Section######################## + +#Mutex timeout interval seconds +MUTEX_TIMEOUT_SECS=0 +MUTEX_TIMEOUT_USECS=5000 +MUTEX_TIMEOUT_RETRIES=10 + +#Lock timeout interval seconds +LOCK_TIMEOUT_SECS=0 +LOCK_TIMEOUT_USECS=5000 +LOCK_TIMEOUT_RETRIES=10 + +#####################################Cache Section######################## + +#Whether to enable caching of tables from target database +CACHE_TABLE=false + +#DSN Name to connect to the target database. +#This should be present in ~/odbc.ini file +DSN=myodbc3 + +ENABLE_BIDIRECTIONAL_CACHE=false + +CACHE_RECEIVER_WAIT_SECS=10 + +#Give full path for the file where all the cached table information is stored +TABLE_CONFIG_FILE=/tmp/csql/csqltable.conf + +#####################################End Section######################## diff --git a/test/sqlapi/Select/exp.test001 b/test/sqlapi/Select/exp.test001 new file mode 100644 index 00000000..01d6bb5f --- /dev/null +++ b/test/sqlapi/Select/exp.test001 @@ -0,0 +1,11 @@ +'T1' table created +10 Rows Inserted +noOfProjFields returns=10 +Fetching starts on table 'T1' : +F1=100 | F2=1 | F3=lakshya | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=lakshya | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=lakshya | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=lakshya | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=lakshya | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +5 Rows fetched +'T1' table dropped diff --git a/test/sqlapi/Select/exp.test002 b/test/sqlapi/Select/exp.test002 new file mode 100644 index 00000000..65a3399d --- /dev/null +++ b/test/sqlapi/Select/exp.test002 @@ -0,0 +1,62 @@ +'T1' Table created +10 Rows Inserted +Total number of projection fields in the select statement=5 + +FIELD INFORMATION : + +*********************************************** +Field Name :F8 +Data type of the field :22 +length of the field :8 +Offset :56 +Default value Buffer : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F10 +Data type of the field :2 +length of the field :8 +Offset :68 +Default value Buffer : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F2 +Data type of the field :3 +length of the field :4 +Offset :4 +Default value Buffer : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F6 +Data type of the field :20 +length of the field :4 +Offset :48 +Default value Buffer : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F3 +Data type of the field :30 +length of the field :32 +Offset :8 +Default value Buffer : +Null field :0 +Default value :0 +*********************************************** +F1=100 | F2=1 | F3=lakshya | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=lakshya | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=lakshya | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=lakshya | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=lakshya | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +Total row fetched=5 +Table dropped diff --git a/test/sqlapi/Select/exp.test005.ksh b/test/sqlapi/Select/exp.test005.ksh new file mode 100644 index 00000000..f0581d21 --- /dev/null +++ b/test/sqlapi/Select/exp.test005.ksh @@ -0,0 +1,97 @@ +Case 1: create table t1 ,test for SET AUTOCOMMIT OFF and some records +[Parser: syntax error] SET +[Parser: syntax error] commiter +[Parser: syntax error] rollbacked +[Parser: syntax error] show +[Parser: syntax error] SET +echo create table t1 (f1 int,f2 int); +Statement Executed +echo check for SET AUTOCOMMIT OFF; +Statement prepare failed with error -19 +echo insert some record; +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +echo rollback; +echo select * from t1; +--------------------------------------------------------- + t1.f1 t1.f2 +--------------------------------------------------------- + 10 20 + 20 30 + 30 40 + 40 50 + 50 60 + +AUTOCOMMIT Mode is set to OFF +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +echo test for commit; +Statement prepare failed with error -19 +--------------------------------------------------------- + t1.f1 t1.f2 +--------------------------------------------------------- + 10 20 + 20 30 + 30 40 + 40 50 + 50 60 + +echo test for rollback; +echo insert 5 records; +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement prepare failed with error -19 +--------------------------------------------------------- + t1.f1 t1.f2 +--------------------------------------------------------- + 10 20 + 20 30 + 30 40 + 40 50 + 50 60 + 20 40 + 20 40 + 20 40 + 20 40 + 20 40 + +echo check for show tables; +Statement prepare failed with error -19 +echo check for SET AUTOCOMMIT ON; +Statement prepare failed with error -19 +echo insert some records; +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +Statement Executed: Rows Affected = 1 +--------------------------------------------------------- + t1.f1 t1.f2 +--------------------------------------------------------- + 10 20 + 20 30 + 30 40 + 40 50 + 50 60 + 20 40 + 20 40 + 20 40 + 20 40 + 20 40 + +echo drop teble; +Statement Executed diff --git a/test/sqlapi/Select/exp.test010 b/test/sqlapi/Select/exp.test010 new file mode 100644 index 00000000..943a7bcf --- /dev/null +++ b/test/sqlapi/Select/exp.test010 @@ -0,0 +1,62 @@ +'T1' Table created +10 Rows Inserted +Total number of projection fields in the select statement=5 + +FIELD INFORMATION : + +*********************************************** +Field Name :F8 +Data type of the field :22 +length of the field :8 +Offset :56 +Default value Buffer : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F10 +Data type of the field :2 +length of the field :8 +Offset :68 +Default value Buffer : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F2 +Data type of the field :3 +length of the field :4 +Offset :4 +Default value Buffer : +Null field :1 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F6 +Data type of the field :20 +length of the field :4 +Offset :48 +Default value Buffer : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F3 +Data type of the field :30 +length of the field :32 +Offset :8 +Default value Buffer :LAKSHYA +Null field :0 +Default value :1 +*********************************************** +F1=100 | F2=1 | F3=LAKSHYA | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=LAKSHYA | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=LAKSHYA | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=LAKSHYA | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=LAKSHYA | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +Total row fetched=5 +Table dropped diff --git a/test/sqlapi/Select/exp.test010n b/test/sqlapi/Select/exp.test010n new file mode 100644 index 00000000..943a7bcf --- /dev/null +++ b/test/sqlapi/Select/exp.test010n @@ -0,0 +1,62 @@ +'T1' Table created +10 Rows Inserted +Total number of projection fields in the select statement=5 + +FIELD INFORMATION : + +*********************************************** +Field Name :F8 +Data type of the field :22 +length of the field :8 +Offset :56 +Default value Buffer : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F10 +Data type of the field :2 +length of the field :8 +Offset :68 +Default value Buffer : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F2 +Data type of the field :3 +length of the field :4 +Offset :4 +Default value Buffer : +Null field :1 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F6 +Data type of the field :20 +length of the field :4 +Offset :48 +Default value Buffer : +Null field :0 +Default value :0 +*********************************************** + +*********************************************** +Field Name :F3 +Data type of the field :30 +length of the field :32 +Offset :8 +Default value Buffer :LAKSHYA +Null field :0 +Default value :1 +*********************************************** +F1=100 | F2=1 | F3=LAKSHYA | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=LAKSHYA | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=LAKSHYA | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=LAKSHYA | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +F1=100 | F2=1 | F3=LAKSHYA | F4=5.500000 | F5=10.500000 | DATE=2008-1-21 | TIME=12:29:30 | TIMESTAMP=2008-1-21 12:29:30 | F9=20 | F10=12000 +Total row fetched=5 +Table dropped diff --git a/test/sqlapi/Select/exp.test011 b/test/sqlapi/Select/exp.test011 new file mode 100644 index 00000000..8b320bf9 --- /dev/null +++ b/test/sqlapi/Select/exp.test011 @@ -0,0 +1,9 @@ +Table T1 created +Total rows inserted 10 +F1=5 | F2=1 | F3=jitendra | F4=5.500000 | F5=5 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=1 | F3=jitendra | F4=5.500000 | F5=6 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=1 | F3=jitendra | F4=5.500000 | F5=7 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=1 | F3=jitendra | F4=5.500000 | F5=8 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=1 | F3=jitendra | F4=5.500000 | F5=9 | DATE=2007-1-21 | TIME=12:29:30 | TIMESTAMP=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +Total row fetched=5 +Table dropped diff --git a/test/sqlapi/Select/exp.test013 b/test/sqlapi/Select/exp.test013 new file mode 100644 index 00000000..9d0e67c2 --- /dev/null +++ b/test/sqlapi/Select/exp.test013 @@ -0,0 +1,45 @@ +Table T1 created +Total rows inserted 20 +F1=0 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=1 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=2 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=3 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=4 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=5 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +Total row fetched=20 +F1=0 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=1 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=2 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=3 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=4 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=5 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=6 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=7 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=8 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=9 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +Total row fetched=20 +Table dropped diff --git a/test/sqlapi/Select/exp.test013n b/test/sqlapi/Select/exp.test013n new file mode 100644 index 00000000..9d0e67c2 --- /dev/null +++ b/test/sqlapi/Select/exp.test013n @@ -0,0 +1,45 @@ +Table T1 created +Total rows inserted 20 +F1=0 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=1 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=2 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=3 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=4 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=5 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=6 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=7 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=8 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=9 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | 23FE +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | F6=2007-01-21 | F7=NULL | F8=2007-1-21 12:29:30 | F9=20 | F10=12000 | F11=NULL | +Total row fetched=20 +F1=0 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=1 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=2 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=3 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=4 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=5 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=6 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=7 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=8 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=9 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +Total row fetched=20 +Table dropped diff --git a/test/sqlapi/Select/exp.test014 b/test/sqlapi/Select/exp.test014 new file mode 100644 index 00000000..14ddf34e --- /dev/null +++ b/test/sqlapi/Select/exp.test014 @@ -0,0 +1,30 @@ +Table T1 created +Total rows inserted 20 +select count(*) from T1 = 10 +select max(F1) from T1 = 9 +select min(F2) from T1 = 1 +select avg(F9) from T1 = 20.000000 +select sum(F10) from T1 = 240000 +Total row fetched=1 +F1=0 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=1 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=2 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=3 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=4 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=5 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=6 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=7 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=8 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=9 | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +F1=NULL | F2=1 | F3=jitendra | F4=5.500000 | F5=NULL | +Total row fetched=20 +Table dropped diff --git a/test/sqlapi/Select/exp.test016 b/test/sqlapi/Select/exp.test016 new file mode 100644 index 00000000..bd52dfe0 --- /dev/null +++ b/test/sqlapi/Select/exp.test016 @@ -0,0 +1,33 @@ +Table created +Table created +Table created +Inserting records into table T1 +5 rows inserted into table T1 +Inserting records into table T2 +5 rows inserted into table T2 +Inserting records into table T3 +5 rows inserted into table T3 +SELECT * FROM T1; +T1.f1 T1.f2 +0 lakshya +1 lakshya +2 lakshya +3 lakshya +4 lakshya +SELECT * FROM T2; +T2.f1 T2.f2 +5 lakshya +6 lakshya +7 lakshya +8 lakshya +9 lakshya +SELECT * FROM T3; +T3.f1 T3.f2 +10 lakshya +11 lakshya +12 lakshya +13 lakshya +14 lakshya +Table T1 dropped successfully +Table T2 dropped successfully +Table T3 dropped successfully diff --git a/test/sqlapi/Select/exp.test016n b/test/sqlapi/Select/exp.test016n new file mode 100644 index 00000000..bd52dfe0 --- /dev/null +++ b/test/sqlapi/Select/exp.test016n @@ -0,0 +1,33 @@ +Table created +Table created +Table created +Inserting records into table T1 +5 rows inserted into table T1 +Inserting records into table T2 +5 rows inserted into table T2 +Inserting records into table T3 +5 rows inserted into table T3 +SELECT * FROM T1; +T1.f1 T1.f2 +0 lakshya +1 lakshya +2 lakshya +3 lakshya +4 lakshya +SELECT * FROM T2; +T2.f1 T2.f2 +5 lakshya +6 lakshya +7 lakshya +8 lakshya +9 lakshya +SELECT * FROM T3; +T3.f1 T3.f2 +10 lakshya +11 lakshya +12 lakshya +13 lakshya +14 lakshya +Table T1 dropped successfully +Table T2 dropped successfully +Table T3 dropped successfully diff --git a/test/sqlapi/Select/selecttest1.c b/test/sqlapi/Select/selecttest1.c new file mode 100644 index 00000000..f515e71a --- /dev/null +++ b/test/sqlapi/Select/selecttest1.c @@ -0,0 +1,110 @@ +/* create table T1 with 10 fields, + * insert 10 rows into the table , + * noofprojFields shoul dreturn 10. + * call fetch and count the record. + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("'T1' table created\n"); + //insert records + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?);"); + int f1var = 99; + short int f2var = 1; + char f3var[32] = "lakshya"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2008,1,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2008,1,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + int count=0; + for(int i=0;i<2;i++) { + f1var = f1var+i; + for(int j=0;j<5;j++) { + rv = con->beginTrans(); + if(rv!=OK)break; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setFloatParam(5,f5var); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + } + printf("%d Rows Inserted\n",count); + stmt->free(); +//******************************************* + strcpy(statement,"SELECT * FROM T1 WHERE F1=100;"); + rv = stmt->prepare(statement); + int nop; + nop = stmt->noOfProjFields(); + printf("noOfProjFields returns=%d\n",nop); + if(rv !=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + count = 0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + printf("Fetching starts on table 'T1' :\n"); + while(stmt->fetch()!=NULL) { + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%f | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld \n",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv!=OK) { delete stmt; delete con; return 7; } + printf("%d Rows fetched\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("'T1' table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/selecttest10.c b/test/sqlapi/Select/selecttest10.c new file mode 100644 index 00000000..8a79b5b1 --- /dev/null +++ b/test/sqlapi/Select/selecttest10.c @@ -0,0 +1,130 @@ +/* create table T1 with 10 fields,( F2 NOT NULL , F3 CHAR(20) DEFAULT 'LAKSHYA') + * + * insert 10 rows for 9 Fields except F3 Field into the table + * noofprojFields should return 5. + * getProjFldInfo() for all fields. + * select with 5 parameters withIwhere clause.(WHERE F1=100) + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT NOT NULL,F3 CHAR(30) DEFAULT 'LAKSHYA',F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("'T1' Table created\n"); +// insert records + strcpy(statement,"INSERT INTO T1(F1,F2,F4,F5,F6,F7,F8,F9,F10)VALUES(?,?,?,?,?,?,?,?,?);"); + int f1var = 99; + short int f2var = 1; +// char f3var[20] = "prabakaran"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2008,1,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2008,1,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + int count=0; + for(int i=0;i<2;i++) { + f1var = f1var+i; + for(int j=0;j<5;j++) { + rv = con->beginTrans(); + if(rv!=OK)break; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + //stmt->setStringParam(3,f3var); + stmt->setFloatParam(3,f4var); + stmt->setFloatParam(4,f5var); + stmt->setDateParam(5,f6var); + stmt->setTimeParam(6,f7var); + stmt->setTimeStampParam(7,f8var); + stmt->setIntParam(8,f9var); + stmt->setLongLongParam(9,f10var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + } + printf("%d Rows Inserted\n",count); + stmt->free(); +//******************************************* + strcpy(statement,"SELECT F8,F10,F2,F6,F3 FROM T1 WHERE F1=100;"); + rv = stmt->prepare(statement); + int nop; + nop = stmt->noOfProjFields(); + if(nop!=5)return 1; + printf("Total number of projection fields in the select statement=%d\n",nop); + // getParamFldInfo() + FieldInfo *field = new FieldInfo(); + printf("\nFIELD INFORMATION :\n"); + char fldName[20]; + DataType type; + size_t length; + int offset; + char defaultValueBuf[10]; + bool isNull; + bool isDefault; + for(int i=0;i<=4;i++) { + printf("\n***********************************************\n"); + rv = stmt->getProjFldInfo(i+1,field); + if(rv!=OK)return 1; + printf("Field Name :%s\n", field->fldName); + printf("Data type of the field :%d\n",field->type); + printf("length of the field :%d\n",field->length); + printf("Offset :%d\n",field->offset); + printf("Default value Buffer :%s\n",field->defaultValueBuf); + printf("Null field :%d\n",field->isNull); + printf("Default value :%d\n",field->isDefault); + printf("***********************************************\n"); + } + char f3var[32]="jitu"; + stmt->bindField(1,&f8var); + stmt->bindField(2,&f10var); + stmt->bindField(3,&f2var); + stmt->bindField(4,&f6var); + stmt->bindField(5,f3var); + count = 0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch()!=NULL) { + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%f | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld \n",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv!=OK) { delete stmt; delete con; return 6; } + printf("Total row fetched=%d\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 7; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 8; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/selecttest11.c b/test/sqlapi/Select/selecttest11.c new file mode 100644 index 00000000..8e8ecae5 --- /dev/null +++ b/test/sqlapi/Select/selecttest11.c @@ -0,0 +1,112 @@ +/* create table T1 with 10 fields. + * insert some records into it. + * select * from T1 where F5= ?; Test for + * stmt->setByteIntParam(1,f5var); + + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 TINYINT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT, F11 BINARY(4));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table T1 created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 0; + short int f2var = 1; + char f3var[32]="jitendra"; + float f4var = 5.5; + int f5var = 10; + Date f6var; + f6var.set(2007,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2007,01,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + char f11var[12]="23fe"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + f1var=i; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setIntParam(5,i); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setBinaryParam(11,f11var, 12); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("Total rows inserted %d\n",count); + stmt->free(); + //********************************************************* + // SELECT * FROM T1; + strcpy(statement,"SELECT * FROM T1 where F5 > ?;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + f5var=4; + stmt->setByteIntParam(1,f5var); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%d | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld ",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var); + printf(" | "); + AllDataType::printVal(f11var,typeBinary,4); + printf("\n"); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("Total row fetched=%d\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/selecttest12.c b/test/sqlapi/Select/selecttest12.c new file mode 100644 index 00000000..5e51ef60 --- /dev/null +++ b/test/sqlapi/Select/selecttest12.c @@ -0,0 +1,149 @@ +/* create table T1 with 10 fields. + * insert some records into it. + * select * from T1 where F5= ?; Test for + * stmt->setByteIntParam(1,f5var); + + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 TINYINT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT, F11 BINARY(4));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table T1 created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 0; + short int f2var = 1; + char f3var[32]="jitendra"; + float f4var = 5.5; + int f5var = 10; + Date f6var; + f6var.set(2007,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2007,01,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + char f11var[12]="23fe"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + if(i%2==0){ + stmt->setNull(1); + stmt->setNull(2); + stmt->setNull(3); + stmt->setNull(4); + stmt->setNull(5); + stmt->setNull(6); + stmt->setNull(7); + stmt->setNull(8); + stmt->setNull(9); + stmt->setNull(10); + stmt->setNull(11); + } + else{ + f1var=i; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setIntParam(5,i); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setBinaryParam(11,f11var, 12); + } + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("Total rows inserted %d\n",count); + stmt->free(); + //********************************************************* + strcpy(statement,"SELECT * FROM T1 where F1 >= ?;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + f1var=0; + stmt->setIntParam(1,f1var); + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { +/* if(stmt->isFldNull(1)==0) + printf("f1=null "); + if(stmt->isFldNull(2)==0) + printf("f2=null "); + if(stmt->isFldNull(3)==0) + printf("f3=null "); + if(stmt->isFldNull(4)==0) + printf("f4=null "); + if(stmt->isFldNull(5)==0) + printf("f5=null "); + if(stmt->isFldNull(6)==0) + printf("f6=null "); + if(stmt->isFldNull(71)==0) + printf("f7=null "); + if(stmt->isFldNull(8)==0) + printf("f8=null "); + if(stmt->isFldNull(9)==0) + printf("f9=null "); + if(stmt->isFldNull(10)==0) + printf("f10=null "); + if(stmt->isFldNull(11)==0) + printf("f11=null \n"); +*/ + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%d | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld ",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var); + printf(" | "); + AllDataType::printVal(f11var,typeBinary,4); + printf("\n"); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("Total row fetched=%d\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/selecttest13.c b/test/sqlapi/Select/selecttest13.c new file mode 100644 index 00000000..78c67f24 --- /dev/null +++ b/test/sqlapi/Select/selecttest13.c @@ -0,0 +1,194 @@ +/* create table T1 with 10 fields. + * insert some records into it with null values + * + * + * select * from T1; + + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT, F11 BINARY(4));"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table T1 created\n"); + // insert into table + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?,?);"); + int f1var = 0; + short int f2var = 1; + char f3var[32]="jitendra"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2007,01,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2007,01,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + char f11var[12]="23fe"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + int count=0; + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + f1var=i; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setNull(5); + stmt->setDateParam(6,f6var); + stmt->setNull(7); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + stmt->setBinaryParam(11,f11var, 12); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + stmt->free(); + //********************************************************* + // Insert with value list records from the T1 + strcpy(statement,"INSERT INTO T1(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10) VALUES(?,?,?,?,?,?,?,?,?,?);"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + for(int i=0;i<10;i++) { + rv = con->beginTrans(); + if(rv!=OK) break; + f1var=i; + stmt->setNull(1); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setNull(5); + stmt->setDateParam(6,f6var); + stmt->setNull(7); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("Total rows inserted %d\n",count); + stmt->free(); + + //********************************************************** + // SELECT * FROM T1; + strcpy(statement,"SELECT * FROM T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + stmt->bindField(6,&f6var); + stmt->bindField(7,&f7var); + stmt->bindField(8,&f8var); + stmt->bindField(9,&f9var); + stmt->bindField(10,&f10var); + stmt->bindField(11,f11var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull(1)) printf("F1=NULL | "); + else printf("F1=%d | ", f1var); + if(stmt->isFldNull(2)) printf("F2=NULL | "); + else printf("F2=%hd | ", f2var); + if(stmt->isFldNull(3)) printf("F3=NULL | "); + else printf("F3=%s | ", f3var); + if(stmt->isFldNull(4)) printf("F4=NULL | "); + else printf("F4=%f | ", f4var); + if(stmt->isFldNull(5)) printf("F5=NULL | "); + else printf("F5=%f | ", f5var); + if(stmt->isFldNull(6)) printf("F6=NULL | "); + else printf("F6=%02d-%02d-%02d | ",f6var.year(), f6var.month(), f6var.dayOfMonth()); + if(stmt->isFldNull(7)) printf("F7=NULL | "); + else printf("F7=%02d:%02d:%02d | ", f7var.hours(),f7var.minutes(),f7var.seconds()); + if(stmt->isFldNull(8)) printf("F8=NULL | "); + else printf("F8=%d-%d-%d %d:%d:%d | ", f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds()); + if(stmt->isFldNull(9)) printf("F9=NULL | "); + else printf("F9=%d | ", f9var); + if(stmt->isFldNull(10)) printf("F10=NULL | "); + else printf("F10=%lld | ", f10var); + if(stmt->isFldNull(11)) printf("F11=NULL | "); + else { AllDataType::printVal(f11var,typeBinary,4); + } + printf("\n"); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("Total row fetched=%d\n",count); + stmt->free(); + //================================= + // Select with projected values + strcpy(statement,"SELECT F1,F2,F3,F4,F5 FROM T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 5; } + stmt->bindField(1,&f1var); + stmt->bindField(2,&f2var); + stmt->bindField(3,f3var); + stmt->bindField(4,&f4var); + stmt->bindField(5,&f5var); + count=0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch() !=NULL) { + if(stmt->isFldNull("F1")) printf("F1=NULL | "); + else printf("F1=%d | ", f1var); + if(stmt->isFldNull("F2")) printf("F2=NULL | "); + else printf("F2=%hd | ", f2var); + if(stmt->isFldNull("F3")) printf("F3=NULL | "); + else printf("F3=%s | ", f3var); + if(stmt->isFldNull("F4")) printf("F4=NULL | "); + else printf("F4=%f | ", f4var); + if(stmt->isFldNull("F5")) printf("F5=NULL | "); + else printf("F5=%f | ", f5var); + printf("\n"); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv !=OK) { delete stmt; delete con; return 7; } + printf("Total row fetched=%d\n",count); + stmt->free(); +//========================== + + + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/selecttest14.c b/test/sqlapi/Select/selecttest14.c new file mode 100644 index 00000000..057f809a --- /dev/null +++ b/test/sqlapi/Select/selecttest14.c @@ -0,0 +1,54 @@ +/* create table T1 with 2 fields. + * get Metadata by Describe + * + * + * select * from T1; + + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 INT);"); + int rows = 0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("Table T1 created\n"); + strcpy(statement,"DESCRIBE T1;"); + rv = stmt->prepare(statement); + char colName[IDENTIFIER_LENGTH]; + int sqlType=0; + int length=0; + int isNull=0; + stmt->bindField(4, colName); + stmt->bindField(5, &sqlType); + stmt->bindField(7, &length); + stmt->bindField(11, &isNull); + int i=0; + rv = stmt->execute(rows); + if (rv != OK) { printError(rv, "execute failed"); return rv; } + while (stmt->fetch(rv) != NULL) { + printf("cnt = %d\n", i++); + } + stmt->free(); + + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 8; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 9; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/selecttest2.c b/test/sqlapi/Select/selecttest2.c new file mode 100644 index 00000000..11f6d012 --- /dev/null +++ b/test/sqlapi/Select/selecttest2.c @@ -0,0 +1,130 @@ +/* create table T1 with 10 fields, + * insert 10 rows into the table , + * noofprojFields should return 5. + * getProjFldInfo() for all fields. + * select with 5 parameters withIwhere clause.(WHERE F1=100) + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 INT,F10 BIGINT);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 2; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 3; } + stmt->free(); + printf("'T1' Table created\n"); + // insert records + strcpy(statement,"INSERT INTO T1 VALUES(?,?,?,?,?,?,?,?,?,?);"); + int f1var = 99; + short int f2var = 1; + char f3var[32] = "lakshya"; + float f4var = 5.5; + float f5var = 10.50; + Date f6var; + f6var.set(2008,1,21); + Time f7var; + f7var.set(12,29,30); + TimeStamp f8var; + f8var.setDate(2008,1,21); + f8var.setTime(12,29,30); + int f9var = 20; + long long f10var = 12000; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 4; } + int count=0; + for(int i=0;i<2;i++) { + f1var = f1var+i; + for(int j=0;j<5;j++) { + rv = con->beginTrans(); + if(rv!=OK)break; + stmt->setIntParam(1,f1var); + stmt->setShortParam(2,f2var); + stmt->setStringParam(3,f3var); + stmt->setFloatParam(4,f4var); + stmt->setFloatParam(5,f5var); + stmt->setDateParam(6,f6var); + stmt->setTimeParam(7,f7var); + stmt->setTimeStampParam(8,f8var); + stmt->setIntParam(9,f9var); + stmt->setLongLongParam(10,f10var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + } + printf("%d Rows Inserted\n",count); + stmt->free(); +//******************************************* + strcpy(statement,"SELECT F8,F10,F2,F6,F3 FROM T1 WHERE F1=100;"); + rv = stmt->prepare(statement); + int nop; + nop = stmt->noOfProjFields(); + if(nop!=5)return 1; + printf("Total number of projection fields in the select statement=%d\n",nop); + // getParamFldInfo() + FieldInfo *field = new FieldInfo(); + + printf("\nFIELD INFORMATION :\n"); + char fldName[20]; + DataType type; + size_t length; + int offset; + char defaultValueBuf[10]; + bool isNull; + bool isDefault; + for(int i=0;i<=4;i++) { + printf("\n***********************************************\n"); + rv = stmt->getProjFldInfo(i+1,field); + if(rv!=OK)return 1; + printf("Field Name :%s\n", field->fldName); + printf("Data type of the field :%d\n",field->type); + printf("length of the field :%d\n",field->length); + printf("Offset :%d\n",field->offset); + printf("Default value Buffer :%s\n",field->defaultValueBuf); + printf("Null field :%d\n",field->isNull); + printf("Default value :%d\n",field->isDefault); + printf("***********************************************\n"); + } + delete field; + stmt->bindField(1,&f8var); + stmt->bindField(2,&f10var); + stmt->bindField(3,&f2var); + stmt->bindField(4,&f6var); + stmt->bindField(5,f3var); + count = 0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch()!=NULL) { + printf("F1=%d | F2=%hd | F3=%s | F4=%f | F5=%f | DATE=%d-%d-%d | TIME=%d:%d:%d | TIMESTAMP=%d-%d-%d %d:%d:%d | F9=%d | F10=%lld \n",f1var,f2var,f3var,f4var,f5var,f6var.year(),f6var.month(),f6var.dayOfMonth(),f7var.hours(),f7var.minutes(),f7var.seconds(),f8var.year(),f8var.month(),f8var.dayOfMonth(),f8var.hours(),f8var.minutes(),f8var.seconds(),f9var,f10var); + count++; + } + stmt->close(); + rv = con->commit(); + if(rv!=OK) { delete stmt; delete con; return 6; } + printf("Total row fetched=%d\n",count); + stmt->free(); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 7; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 8; } + printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/selecttest3.c b/test/sqlapi/Select/selecttest3.c new file mode 100644 index 00000000..4076ebae --- /dev/null +++ b/test/sqlapi/Select/selecttest3.c @@ -0,0 +1,83 @@ +/* create table T1 with two fields, + * insert 10 rows into the table , + * select from nonexisting table. + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 CHAR(20));"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 2; } + stmt->free(); + printf("Table created\n"); + // insert records + strcpy(statement,"INSERT INTO T1 VALUES(?,?);"); + int f1var = 1; + char f2var[32] = "lakshya"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 3; } + int count=0; + for(int i=0;i<2;i++) { + for(int j=0;j<5;j++) { + f1var = j; + rv = con->beginTrans(); + if(rv!=OK)break; + stmt->setIntParam(1,f1var); + stmt->setStringParam(2,f2var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("%d rows inserted\n",count); + } + stmt->free(); + //******************************************* + strcpy(statement,"SELECT * FROM T11;"); + rv = stmt->prepare(statement); + if(rv !=OK) { + printf("test script passed\n"); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + if(rv==OK){printf("Table dropped\n");} + stmt->free(); delete stmt; delete con; + return 0; + } else if(rv==OK) { + printf("Test script failed\n"); + return 5; + } else { + stmt->bindField(1,&f1var); + stmt->bindField(2,f2var); + count = 0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(stmt->fetch()!=NULL) { count++; } + stmt->close(); + rv = con->commit(); + if(rv!=OK) { delete stmt; delete con; return 7; } + printf("Total row fetched=%d\n",count); + } + stmt->free(); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + if(rv==OK){printf("Table dropped\n");} + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/selecttest4.c b/test/sqlapi/Select/selecttest4.c new file mode 100644 index 00000000..a5b46178 --- /dev/null +++ b/test/sqlapi/Select/selecttest4.c @@ -0,0 +1,66 @@ +/* create table T1 with two fields, + * insert 10 rows into the table , + * select with nonexisting fields. + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 INT);"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 2; } + stmt->free(); + printf("Table created\n"); + // insert records + strcpy(statement,"INSERT INTO T1 VALUES(?,?);"); + int f1var = 1; + int f2var= 110; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 3; } + int count=0; + for(int i=0;i<2;i++) { + for(int j=0;j<5;j++) { + f1var = j; + rv = con->beginTrans(); + if(rv!=OK)break; + stmt->setIntParam(1,f1var); + stmt->setIntParam(2,f2var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("%d rows inserted\n",count); + } + stmt->free(); +//******************************************* + strcpy(statement,"SELECT F3 ,F2 FROM T1;"); + rv = stmt->prepare(statement); + if(rv !=OK) { + printf("Test script passed\n"); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + if(rv==OK)printf("Table dropped\n"); + stmt->free(); delete stmt; delete con; + return 0; + } else { + printf("Test script failed\n"); + delete stmt; delete con; + return 4; + } +} diff --git a/test/sqlapi/Select/selecttest5.c b/test/sqlapi/Select/selecttest5.c new file mode 100644 index 00000000..92abb083 --- /dev/null +++ b/test/sqlapi/Select/selecttest5.c @@ -0,0 +1,28 @@ +/* call execute without calling prepare. it should fail. + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 INT);"); + int rows=0; + rv = stmt->execute(rows); + if(rv!=OK) { + delete stmt; delete con; + printf("Execute failed without call prepare\n"); + return 0; + } + printf("Test script failed\n"); + stmt->free(); delete stmt; delete con; + return 1; +} diff --git a/test/sqlapi/Select/selecttest6.c b/test/sqlapi/Select/selecttest6.c new file mode 100644 index 00000000..838ffe1b --- /dev/null +++ b/test/sqlapi/Select/selecttest6.c @@ -0,0 +1,73 @@ +/* create table T1 with two fields, + * insert 10 rows into the table , + * fetch without prepare. + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 CHAR(20));"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 2; } + stmt->free(); + printf("Table created\n"); +// insert records + strcpy(statement,"INSERT INTO T1 VALUES(?,?);"); + int f1var = 1; + char f2var[24] = "lakshya"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 3; } + int count=0; + for(int i=0;i<2;i++) { + for(int j=0;j<5;j++) { + f1var = j; + rv = con->beginTrans(); + if(rv!=OK)break; + stmt->setIntParam(1,f1var); + stmt->setStringParam(2,f2var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("%d rows inserted\n",count); + } + stmt->free(); +//******************************************* + strcpy(statement,"SELECT * FROM T1;"); + stmt->bindField(1,&f1var); + stmt->bindField(2,f2var); + void *ret; + count = 0; + rv = con->beginTrans(); + if(rv!=OK)return 6; + stmt->execute(rows); + while(1) { + ret = ((char*)stmt->fetch()); + if(ret ==NULL) { + printf("fetch failed without prepare\n"); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + if(rv==OK){printf("Table dropped successfully\n");} + stmt->free(); delete stmt; delete con; return 0; + } + printf("Test script failed\n"); + } + delete stmt; delete con; + return 8; +} diff --git a/test/sqlapi/Select/selecttest7.c b/test/sqlapi/Select/selecttest7.c new file mode 100644 index 00000000..793a7c10 --- /dev/null +++ b/test/sqlapi/Select/selecttest7.c @@ -0,0 +1,79 @@ +/* create table T1 with two fields, + * insert 10 rows into the table , + * call fetch without call execute,it returns NULL. + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 CHAR(20));"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 2; } + stmt->free(); + printf("Table created\n"); +// insert records + strcpy(statement,"INSERT INTO T1 VALUES(?,?);"); + int f1var = 1; + char f2var[24] = "lakshya"; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 3; } + int count=0; + for(int i=0;i<2;i++) { + for(int j=0;j<5;j++) { + f1var = j; + rv = con->beginTrans(); + if(rv!=OK)break; + stmt->setIntParam(1,f1var); + stmt->setStringParam(2,f2var); + rv = stmt->execute(rows); + if(rv!=OK)break; + rv = con->commit(); + if(rv!=OK)break; + count++; + } + printf("%d rows inserted\n",count); + } + stmt->free(); +//******************************************* + strcpy(statement,"SELECT * FROM T1;"); + rv = stmt->prepare(statement); + if(rv !=OK) { delete stmt; delete con; return 4; } + stmt->bindField(1,&f1var); + stmt->bindField(2,f2var); + void *ret; + count = 0; + rv = con->beginTrans(); + if(rv!=OK)return 5; + //stmt->execute(rows); + while(1) { + ret = ((char*)stmt->fetch()); + if(ret==NULL) { + printf("without prepare,Fetch failed\n"); + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + if(rv==OK){printf("Table dropped successfully\n");} + stmt->free(); + delete stmt; + delete con; + return 0; + } + printf("Test script failed\n"); + } + stmt->free(); delete stmt; delete con; + return 7; +} + diff --git a/test/sqlapi/Select/selecttest8.c b/test/sqlapi/Select/selecttest8.c new file mode 100644 index 00000000..ca579909 --- /dev/null +++ b/test/sqlapi/Select/selecttest8.c @@ -0,0 +1,42 @@ +/* prepare,execute,free,prepare, second prepare should pass. + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 CHAR(20));"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + printf("Prepare the Statement\n"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 2; } + printf("Execute the Statement\n"); + stmt->free(); + printf("free all the resources\n"); + //again prepare + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { + printf("Test script failed\n"); + delete stmt; delete con; return 3; + } + printf("Again prepare passed\n"); + //Drop the table + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + rv = stmt->execute(rows); + if(rv==OK)printf("Table dropped successfully\n"); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/selecttest9.c b/test/sqlapi/Select/selecttest9.c new file mode 100644 index 00000000..1ec7cb28 --- /dev/null +++ b/test/sqlapi/Select/selecttest9.c @@ -0,0 +1,37 @@ +/* prepare,execute,prepare...., + * second prepare should pass. + + * Author : Jitendra Lenka + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt = createStatement(); + stmt->setConnection(con); + char statement[200]; + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 CHAR(20));"); + int rows=0; + rv = stmt->prepare(statement); + if(rv!=OK) { delete stmt; delete con; return 1; } + printf("Prepared the statement\n"); + rv = stmt->execute(rows); + if(rv!=OK) { delete stmt; delete con; return 2; } + printf("Execute the statement\n"); + //again prepare + strcpy(statement,"DROP TABLE T1;"); + rv = stmt->prepare(statement); + if(rv!=OK) { + printf("Test script failed\n"); + delete stmt; delete con; return 3; + } + printf("Test script passed\n"); + stmt->execute(rows); + stmt->free(); delete stmt; delete con; + return 0; +} diff --git a/test/sqlapi/Select/singleconn.c b/test/sqlapi/Select/singleconn.c new file mode 100644 index 00000000..c78a7271 --- /dev/null +++ b/test/sqlapi/Select/singleconn.c @@ -0,0 +1,191 @@ +/*One connection working with multiple statements + *create table T1 with two fields, + *One connection working with multiple statements simultaneously for csql, + *Create conn + *create 3 stmts for inserting into 5 tables and set the same connection + *insert into all 3 tables and commit the transaction + *free all stmts + *select the records from 3 tables in same connection + *free all stmt; + *Author : Nihar Paital + */ + +#include"common.h" + +int main() +{ + DbRetVal rv = OK; + AbsSqlConnection *con = createConnection(); + rv = con->connect("root","manager"); + if(rv!=OK)return 1; + AbsSqlStatement *stmt1 = createStatement(); + AbsSqlStatement *stmt2 = createStatement(); + AbsSqlStatement *stmt3 = createStatement(); + char statement[200]; + + stmt1->setConnection(con); + strcpy(statement,"CREATE TABLE T1(F1 INT,F2 CHAR(20));"); + int rows=0; + rv = stmt1->prepare(statement); + if(rv!=OK) { delete stmt1; delete con; return 1; } + rv = stmt1->execute(rows); + if(rv!=OK) { delete stmt1; delete con; return 2; } + printf("Table created\n"); + + stmt2->setConnection(con); + strcpy(statement,"CREATE TABLE T2(F1 INT,F2 CHAR(20));"); + rows=0; + rv = stmt2->prepare(statement); + if(rv!=OK) { delete stmt2; delete con; return 3; } + rv = stmt2->execute(rows); + if(rv!=OK) { delete stmt2; delete con; return 4; } + printf("Table created\n"); + + stmt3->setConnection(con); + strcpy(statement,"CREATE TABLE T3(F1 INT,F2 CHAR(20));"); + rows=0; + rv = stmt3->prepare(statement); + if(rv!=OK) { delete stmt3; delete con; return 5; } + rv = stmt3->execute(rows); + if(rv!=OK) { delete stmt3; delete con; return 6; } + printf("Table created\n"); + stmt1->free(); + stmt2->free(); + stmt3->free(); + +// insert records into T1 + int f1varT1 = 1; + char f2varT1[24] = "lakshya"; + printf("Inserting records into table T1\n"); + strcpy(statement,"INSERT INTO T1 VALUES(?,?);"); + rv = stmt1->prepare(statement); + if(rv!=OK) { delete stmt1; delete con; return 3; } + int count=0; + rv = con->beginTrans(); + for(int j=0;j<5;j++) { + f1varT1 = j; + if(rv!=OK)break; + stmt1->setIntParam(1,f1varT1); + stmt1->setStringParam(2,f2varT1); + rv = stmt1->execute(rows); + if(rv!=OK)break; + count++; + } + printf("%d rows inserted into table T1\n",count); + +// insert records into T2 + int f1varT2 = 1; + char f2varT2[24] = "lakshya"; + printf("Inserting records into table T2\n"); + strcpy(statement,"INSERT INTO T2 VALUES(?,?);"); + rv = stmt2->prepare(statement); + if(rv!=OK) { delete stmt2; delete con; return 3; } + count=0; + for(int j=5;j<10;j++) { + f1varT2 = j; + if(rv!=OK)break; + stmt2->setIntParam(1,f1varT2); + stmt2->setStringParam(2,f2varT2); + rv = stmt2->execute(rows); + if(rv!=OK)break; + count++; + } + printf("%d rows inserted into table T2\n",count); + +// insert records into T3 + int f1varT3 = 1; + char f2varT3[24] = "lakshya"; + printf("Inserting records into table T3\n"); + strcpy(statement,"INSERT INTO T3 VALUES(?,?);"); + rv = stmt3->prepare(statement); + if(rv!=OK) { delete stmt3; delete con; return 3; } + count=0; + for(int j=10;j<15;j++) { + f1varT3 = j; + if(rv!=OK)break; + stmt3->setIntParam(1,f1varT3); + stmt3->setStringParam(2,f2varT3); + rv = stmt3->execute(rows); + if(rv!=OK)break; + count++; + } + printf("%d rows inserted into table T3\n",count); + rv = con->commit(); + + stmt1->free(); + stmt2->free(); + stmt3->free(); +//******************************************* + printf("SELECT * FROM T1;\n"); + strcpy(statement,"SELECT * FROM T1;"); + rv = stmt1->prepare(statement); + if(rv !=OK) { delete stmt1; delete con; return 4; } + stmt1->bindField(1,&f1varT1); + stmt1->bindField(2,f2varT1); + void *ret; + count = 0; + rv = con->beginTrans(); + if(rv!=OK)return 5; + printf("T1.f1\tT1.f2\n"); + stmt1->execute(rows); + while((char*)stmt1->fetch()) { + printf("%d\t%s\n",f1varT1,f2varT1); + if(ret==NULL) { + break; + } + } + + printf("SELECT * FROM T2;\n"); + strcpy(statement,"SELECT * FROM T2;"); + rv = stmt2->prepare(statement); + if(rv !=OK) { delete stmt2; delete con; return 4; } + stmt2->bindField(1,&f1varT2); + stmt2->bindField(2,f2varT2); + count = 0; + stmt2->execute(rows); + printf("T2.f1\tT2.f2\n"); + while((char*)stmt2->fetch()) { + printf("%d\t%s\n",f1varT2,f2varT2); + if(ret==NULL) { + break; + } + } + + printf("SELECT * FROM T3;\n"); + strcpy(statement,"SELECT * FROM T3;"); + rv = stmt3->prepare(statement); + if(rv !=OK) { delete stmt3; delete con; return 4; } + stmt3->bindField(1,&f1varT3); + stmt3->bindField(2,f2varT3); + count = 0; + stmt3->execute(rows); + printf("T3.f1\tT3.f2\n"); + while((char*)stmt3->fetch()) { + printf("%d\t%s\n",f1varT3,f2varT3); + if(ret==NULL) { + break; + } + } + con->commit(); + + strcpy(statement,"DROP TABLE T1;"); + rv = stmt1->prepare(statement); + rv = stmt1->execute(rows); + if(rv==OK){printf("Table T1 dropped successfully\n");} + + strcpy(statement,"DROP TABLE T2;"); + rv = stmt2->prepare(statement); + rv = stmt2->execute(rows); + if(rv==OK){printf("Table T2 dropped successfully\n");} + + strcpy(statement,"DROP TABLE T3;"); + rv = stmt3->prepare(statement); + rv = stmt3->execute(rows); + if(rv==OK){printf("Table T3 dropped successfully\n");} + + stmt1->free(); delete stmt1; + stmt2->free(); delete stmt2; + stmt3->free(); delete stmt3; + delete con; + return 0; +} diff --git a/test/sqlapi/Select/test005.ksh b/test/sqlapi/Select/test005.ksh new file mode 100755 index 00000000..4459b3bb --- /dev/null +++ b/test/sqlapi/Select/test005.ksh @@ -0,0 +1,28 @@ +#!/bin/ksh +# Test Case +# check options -D chunk with empty database +#create table t1 (f1,f2) check with -D chunk +#drop t1 check with -D chunk + +CSQL_CONF=${PWD}/sqlapi/Select/csql.conf +REL_PATH=. +if [ -s "$CSQL_CONF" ] +then + REL_PATH=${PWD}/sqlapi/Select +fi +export CSQL_CONFIG_FILE=$REL_PATH/csql.conf + +$CSQL_INSTALL_ROOT/bin/csqlserver >/dev/null 2>&1 & +pid=$! +sleep 5 +echo "Case 1: create table t1 ,test for SET AUTOCOMMIT OFF and some records " +$CSQL_INSTALL_ROOT/bin/csql -s ${REL_PATH}/create.sql 2>&1 +if [ $? -ne 0 ] +then + exit 1; +fi + +kill -9 $pid +ipcrm -M 1199 -M 2277 +exit 0; + -- 2.11.4.GIT