1#! /usr/bin/env python 2 3# Copyright (c) 1999-2018 David Muse 4# See the file COPYING for more information. 5 6from SQLRelay import PySQLRClient 7import sys 8import string 9from decimal import Decimal 10 11def checkSuccess(value,success): 12 if value==success: 13 print("success") 14 else: 15 print("wanted", type(success), ":", success) 16 print("got ", type(value), ":", value) 17 print("failure") 18 sys.exit(1) 19 20def main(): 21 22 #PySQLRClient.getNumericFieldsAsNumbers() 23 24 # instantiation 25 con=PySQLRClient.sqlrconnection("sqlrelay",9000, 26 "/tmp/test.socket", 27 "test","test") 28 cur=PySQLRClient.sqlrcursor(con) 29 30 # get database type 31 print("IDENTIFY: ") 32 checkSuccess(con.identify(),"mysql") 33 34 # ping 35 print("PING: ") 36 checkSuccess(con.ping(),1) 37 print() 38 39 # drop existing table 40 cur.sendQuery("drop table testtable") 41 42 # create a new table 43 print("CREATE TEMPTABLE: ") 44 checkSuccess(cur.sendQuery("create table testdb.testtable (testtinyint tinyint, testsmallint smallint, testmediumint mediumint, testint int, testbigint bigint, testfloat float, testreal real, testdecimal decimal(2,1), testdate date, testtime time, testdatetime datetime, testyear year, testchar char(40), testtext text, testvarchar varchar(40), testtinytext tinytext, testmediumtext mediumtext, testlongtext longtext, testtimestamp timestamp)"),1) 45 print() 46 47 print("INSERT: ") 48 checkSuccess(cur.sendQuery("insert into testdb.testtable values (1,1,1,1,1,1.1,1.1,1.1,'2001-01-01','01:00:00','2001-01-01 01:00:00','2001','char1','text1','varchar1','tinytext1','mediumtext1','longtext1',NULL)"),1) 49 checkSuccess(cur.sendQuery("insert into testdb.testtable values (2,2,2,2,2,2.1,2.1,2.1,'2002-01-01','02:00:00','2002-01-01 02:00:00','2002','char2','text2','varchar2','tinytext2','mediumtext2','longtext2',NULL)"),1) 50 checkSuccess(cur.sendQuery("insert into testdb.testtable values (3,3,3,3,3,3.1,3.1,3.1,'2003-01-01','03:00:00','2003-01-01 03:00:00','2003','char3','text3','varchar3','tinytext3','mediumtext3','longtext3',NULL)"),1) 51 checkSuccess(cur.sendQuery("insert into testdb.testtable values (4,4,4,4,4,4.1,4.1,4.1,'2004-01-01','04:00:00','2004-01-01 04:00:00','2004','char4','text4','varchar4','tinytext4','mediumtext4','longtext4',NULL)"),1) 52 print() 53 54 print("AFFECTED ROWS: ") 55 checkSuccess(cur.affectedRows(),1) 56 print() 57 58 print("BIND BY POSITION: ") 59 cur.prepareQuery("insert into testdb.testtable values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,NULL)") 60 checkSuccess(cur.countBindVariables(),18) 61 cur.inputBind("1",5) 62 cur.inputBind("2",5) 63 cur.inputBind("3",5) 64 cur.inputBind("4",5) 65 cur.inputBind("5",5) 66 cur.inputBind("6",5.1,2,1) 67 cur.inputBind("7",5.1,2,1) 68 cur.inputBind("8",5.1,2,1) 69 cur.inputBind("9","2005-01-01") 70 cur.inputBind("10","05:00:00") 71 cur.inputBind("11","2005-01-01 05:00:00") 72 cur.inputBind("12","2005") 73 cur.inputBind("13","char5") 74 cur.inputBind("14","text5") 75 cur.inputBind("15","varchar5") 76 cur.inputBind("16","tinytext5") 77 cur.inputBind("17","mediumtext5") 78 cur.inputBind("18","longtext5") 79 checkSuccess(cur.executeQuery(),1) 80 cur.clearBinds() 81 cur.inputBind("1",6) 82 cur.inputBind("2",6) 83 cur.inputBind("3",6) 84 cur.inputBind("4",6) 85 cur.inputBind("5",6) 86 cur.inputBind("6",6.1,2,1) 87 cur.inputBind("7",6.1,2,1) 88 cur.inputBind("8",6.1,2,1) 89 cur.inputBind("9",'2006-01-01') 90 cur.inputBind("10",'06:00:00') 91 cur.inputBind("11",'2006-01-01 06:00:00') 92 cur.inputBind("12",'2006') 93 cur.inputBind("13",'char6') 94 cur.inputBind("14",'text6') 95 cur.inputBind("15",'varchar6') 96 cur.inputBind("16",'tinytext6') 97 cur.inputBind("17",'mediumtext6') 98 cur.inputBind("18",'longtext6') 99 checkSuccess(cur.executeQuery(),1) 100 print() 101 102 print("ARRAY OF BINDS BY POSITION: ") 103 cur.clearBinds() 104 cur.inputBinds(["1","2","3","4","5","6", 105 "7","8","9","10","11","12", 106 "13","14","15", 107 "16","17","18",], 108 [7,7,7,7,7,7.1,7.1,7.1,'2007-01-01','07:00:00','2007-01-01 07:00:00','2007','char7','text7','varchar7','tinytext7','mediumtext7','longtext7'], 109 [0,0,0,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0], 110 [0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0]) 111 checkSuccess(cur.executeQuery(),1) 112 print() 113 114 print("BIND BY POSITION WITH VALIDATION: ") 115 cur.clearBinds() 116 cur.inputBind("1",8) 117 cur.inputBind("2",8) 118 cur.inputBind("3",8) 119 cur.inputBind("4",8) 120 cur.inputBind("5",8) 121 cur.inputBind("6",8.1,2,1) 122 cur.inputBind("7",8.1,2,1) 123 cur.inputBind("8",8.1,2,1) 124 cur.inputBind("9",'2008-01-01') 125 cur.inputBind("10",'08:00:00') 126 cur.inputBind("11",'2008-01-01 08:00:00') 127 cur.inputBind("12",'2008') 128 cur.inputBind("13",'char8') 129 cur.inputBind("14",'text8') 130 cur.inputBind("15",'varchar8') 131 cur.inputBind("16",'tinytext8') 132 cur.inputBind("17",'mediumtext8') 133 cur.inputBind("18",'longtext8') 134 cur.validateBinds() 135 checkSuccess(cur.executeQuery(),1) 136 print() 137 138 print("SELECT: ") 139 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 140 print() 141 142 print("COLUMN COUNT: ") 143 checkSuccess(cur.colCount(),19) 144 print() 145 146 print("COLUMN NAMES: ") 147 checkSuccess(cur.getColumnName(0),"testtinyint") 148 checkSuccess(cur.getColumnName(1),"testsmallint") 149 checkSuccess(cur.getColumnName(2),"testmediumint") 150 checkSuccess(cur.getColumnName(3),"testint") 151 checkSuccess(cur.getColumnName(4),"testbigint") 152 checkSuccess(cur.getColumnName(5),"testfloat") 153 checkSuccess(cur.getColumnName(6),"testreal") 154 checkSuccess(cur.getColumnName(7),"testdecimal") 155 checkSuccess(cur.getColumnName(8),"testdate") 156 checkSuccess(cur.getColumnName(9),"testtime") 157 checkSuccess(cur.getColumnName(10),"testdatetime") 158 checkSuccess(cur.getColumnName(11),"testyear") 159 checkSuccess(cur.getColumnName(12),"testchar") 160 checkSuccess(cur.getColumnName(13),"testtext") 161 checkSuccess(cur.getColumnName(14),"testvarchar") 162 checkSuccess(cur.getColumnName(15),"testtinytext") 163 checkSuccess(cur.getColumnName(16),"testmediumtext") 164 checkSuccess(cur.getColumnName(17),"testlongtext") 165 checkSuccess(cur.getColumnName(18),"testtimestamp") 166 cols=cur.getColumnNames() 167 checkSuccess(cols[0],"testtinyint") 168 checkSuccess(cols[1],"testsmallint") 169 checkSuccess(cols[2],"testmediumint") 170 checkSuccess(cols[3],"testint") 171 checkSuccess(cols[4],"testbigint") 172 checkSuccess(cols[5],"testfloat") 173 checkSuccess(cols[6],"testreal") 174 checkSuccess(cols[7],"testdecimal") 175 checkSuccess(cols[8],"testdate") 176 checkSuccess(cols[9],"testtime") 177 checkSuccess(cols[10],"testdatetime") 178 checkSuccess(cols[11],"testyear") 179 checkSuccess(cols[12],"testchar") 180 checkSuccess(cols[13],"testtext") 181 checkSuccess(cols[14],"testvarchar") 182 checkSuccess(cols[15],"testtinytext") 183 checkSuccess(cols[16],"testmediumtext") 184 checkSuccess(cols[17],"testlongtext") 185 checkSuccess(cols[18],"testtimestamp") 186 print() 187 188 print("COLUMN TYPES: ") 189 checkSuccess(cur.getColumnType(0),"TINYINT") 190 checkSuccess(cur.getColumnType(1),"SMALLINT") 191 checkSuccess(cur.getColumnType(2),"MEDIUMINT") 192 checkSuccess(cur.getColumnType(3),"INT") 193 checkSuccess(cur.getColumnType(4),"BIGINT") 194 checkSuccess(cur.getColumnType(5),"FLOAT") 195 checkSuccess(cur.getColumnType(6),"REAL") 196 checkSuccess(cur.getColumnType(7),"DECIMAL") 197 checkSuccess(cur.getColumnType(8),"DATE") 198 checkSuccess(cur.getColumnType(9),"TIME") 199 checkSuccess(cur.getColumnType(10),"DATETIME") 200 checkSuccess(cur.getColumnType(11),"YEAR") 201 checkSuccess(cur.getColumnType(12),"STRING") 202 checkSuccess(cur.getColumnType(13),"BLOB") 203 checkSuccess(cur.getColumnType(14),"CHAR") 204 checkSuccess(cur.getColumnType(15),"TINYBLOB") 205 checkSuccess(cur.getColumnType(16),"MEDIUMBLOB") 206 checkSuccess(cur.getColumnType(17),"LONGBLOB") 207 checkSuccess(cur.getColumnType(18),"TIMESTAMP") 208 checkSuccess(cur.getColumnType("testtinyint"),"TINYINT") 209 checkSuccess(cur.getColumnType("testsmallint"),"SMALLINT") 210 checkSuccess(cur.getColumnType("testmediumint"),"MEDIUMINT") 211 checkSuccess(cur.getColumnType("testint"),"INT") 212 checkSuccess(cur.getColumnType("testbigint"),"BIGINT") 213 checkSuccess(cur.getColumnType("testfloat"),"FLOAT") 214 checkSuccess(cur.getColumnType("testreal"),"REAL") 215 checkSuccess(cur.getColumnType("testdecimal"),"DECIMAL") 216 checkSuccess(cur.getColumnType("testdate"),"DATE") 217 checkSuccess(cur.getColumnType("testtime"),"TIME") 218 checkSuccess(cur.getColumnType("testdatetime"),"DATETIME") 219 checkSuccess(cur.getColumnType("testyear"),"YEAR") 220 checkSuccess(cur.getColumnType("testchar"),"STRING") 221 checkSuccess(cur.getColumnType("testtext"),"BLOB") 222 checkSuccess(cur.getColumnType("testvarchar"),"CHAR") 223 checkSuccess(cur.getColumnType("testtinytext"),"TINYBLOB") 224 checkSuccess(cur.getColumnType("testmediumtext"),"MEDIUMBLOB") 225 checkSuccess(cur.getColumnType("testlongtext"),"LONGBLOB") 226 checkSuccess(cur.getColumnType("testtimestamp"),"TIMESTAMP") 227 print() 228 229 print("COLUMN LENGTH: ") 230 checkSuccess(cur.getColumnLength(0),1) 231 checkSuccess(cur.getColumnLength(1),2) 232 checkSuccess(cur.getColumnLength(2),3) 233 checkSuccess(cur.getColumnLength(3),4) 234 checkSuccess(cur.getColumnLength(4),8) 235 checkSuccess(cur.getColumnLength(5),4) 236 checkSuccess(cur.getColumnLength(6),8) 237 checkSuccess(cur.getColumnLength(7),6) 238 checkSuccess(cur.getColumnLength(8),3) 239 checkSuccess(cur.getColumnLength(9),3) 240 checkSuccess(cur.getColumnLength(10),8) 241 checkSuccess(cur.getColumnLength(11),1) 242 checkSuccess(cur.getColumnLength(12),40) 243 checkSuccess(cur.getColumnLength(13),65535) 244 checkSuccess(cur.getColumnLength(14),41) 245 checkSuccess(cur.getColumnLength(15),255) 246 checkSuccess(cur.getColumnLength(16),16777215) 247 checkSuccess(cur.getColumnLength(17),2147483647) 248 checkSuccess(cur.getColumnLength(18),4) 249 checkSuccess(cur.getColumnLength("testtinyint"),1) 250 checkSuccess(cur.getColumnLength("testsmallint"),2) 251 checkSuccess(cur.getColumnLength("testmediumint"),3) 252 checkSuccess(cur.getColumnLength("testint"),4) 253 checkSuccess(cur.getColumnLength("testbigint"),8) 254 checkSuccess(cur.getColumnLength("testfloat"),4) 255 checkSuccess(cur.getColumnLength("testreal"),8) 256 checkSuccess(cur.getColumnLength("testdecimal"),6) 257 checkSuccess(cur.getColumnLength("testdate"),3) 258 checkSuccess(cur.getColumnLength("testtime"),3) 259 checkSuccess(cur.getColumnLength("testdatetime"),8) 260 checkSuccess(cur.getColumnLength("testyear"),1) 261 checkSuccess(cur.getColumnLength("testchar"),40) 262 checkSuccess(cur.getColumnLength("testtext"),65535) 263 checkSuccess(cur.getColumnLength("testvarchar"),41) 264 checkSuccess(cur.getColumnLength("testtinytext"),255) 265 checkSuccess(cur.getColumnLength("testmediumtext"),16777215) 266 checkSuccess(cur.getColumnLength("testlongtext"),2147483647) 267 checkSuccess(cur.getColumnLength("testtimestamp"),4) 268 print() 269 270 print("LONGEST COLUMN: ") 271 checkSuccess(cur.getLongest(0),1) 272 checkSuccess(cur.getLongest(1),1) 273 checkSuccess(cur.getLongest(2),1) 274 checkSuccess(cur.getLongest(3),1) 275 checkSuccess(cur.getLongest(4),1) 276 checkSuccess(cur.getLongest(5),3) 277 checkSuccess(cur.getLongest(6),3) 278 checkSuccess(cur.getLongest(7),3) 279 checkSuccess(cur.getLongest(8),10) 280 checkSuccess(cur.getLongest(9),8) 281 checkSuccess(cur.getLongest(10),19) 282 checkSuccess(cur.getLongest(11),4) 283 checkSuccess(cur.getLongest(12),5) 284 checkSuccess(cur.getLongest(13),5) 285 checkSuccess(cur.getLongest(14),8) 286 checkSuccess(cur.getLongest(15),9) 287 checkSuccess(cur.getLongest(16),11) 288 checkSuccess(cur.getLongest(17),9) 289 checkSuccess(cur.getLongest(18),19) 290 checkSuccess(cur.getLongest("testtinyint"),1) 291 checkSuccess(cur.getLongest("testsmallint"),1) 292 checkSuccess(cur.getLongest("testmediumint"),1) 293 checkSuccess(cur.getLongest("testint"),1) 294 checkSuccess(cur.getLongest("testbigint"),1) 295 checkSuccess(cur.getLongest("testfloat"),3) 296 checkSuccess(cur.getLongest("testreal"),3) 297 checkSuccess(cur.getLongest("testdecimal"),3) 298 checkSuccess(cur.getLongest("testdate"),10) 299 checkSuccess(cur.getLongest("testtime"),8) 300 checkSuccess(cur.getLongest("testdatetime"),19) 301 checkSuccess(cur.getLongest("testyear"),4) 302 checkSuccess(cur.getLongest("testchar"),5) 303 checkSuccess(cur.getLongest("testtext"),5) 304 checkSuccess(cur.getLongest("testvarchar"),8) 305 checkSuccess(cur.getLongest("testtinytext"),9) 306 checkSuccess(cur.getLongest("testmediumtext"),11) 307 checkSuccess(cur.getLongest("testlongtext"),9) 308 checkSuccess(cur.getLongest("testtimestamp"),19) 309 print() 310 311 print("ROW COUNT: ") 312 checkSuccess(cur.rowCount(),8) 313 print() 314 315 print("TOTAL ROWS: ") 316 checkSuccess(cur.totalRows(),8) 317 print() 318 319 print("FIRST ROW INDEX: ") 320 checkSuccess(cur.firstRowIndex(),0) 321 print() 322 323 print("END OF RESULT SET: ") 324 checkSuccess(cur.endOfResultSet(),1) 325 print() 326 327 print("FIELDS BY INDEX: ") 328 checkSuccess(cur.getField(0,0),"1") 329 checkSuccess(cur.getField(0,1),"1") 330 checkSuccess(cur.getField(0,2),"1") 331 checkSuccess(cur.getField(0,3),"1") 332 checkSuccess(cur.getField(0,4),"1") 333 checkSuccess(cur.getField(0,5),"1.1") 334 checkSuccess(cur.getField(0,6),"1.1") 335 checkSuccess(cur.getField(0,7),"1.1") 336 checkSuccess(cur.getField(0,8),"2001-01-01") 337 checkSuccess(cur.getField(0,9),"01:00:00") 338 checkSuccess(cur.getField(0,10),"2001-01-01 01:00:00") 339 checkSuccess(cur.getField(0,11),"2001") 340 checkSuccess(cur.getField(0,12),"char1") 341 checkSuccess(cur.getField(0,13),"text1") 342 checkSuccess(cur.getField(0,14),"varchar1") 343 checkSuccess(cur.getField(0,15),"tinytext1") 344 checkSuccess(cur.getField(0,16),"mediumtext1") 345 checkSuccess(cur.getField(0,17),"longtext1") 346 print() 347 checkSuccess(cur.getField(7,0),"8") 348 checkSuccess(cur.getField(7,1),"8") 349 checkSuccess(cur.getField(7,2),"8") 350 checkSuccess(cur.getField(7,3),"8") 351 checkSuccess(cur.getField(7,4),"8") 352 checkSuccess(cur.getField(7,5),"8.1") 353 checkSuccess(cur.getField(7,6),"8.1") 354 checkSuccess(cur.getField(7,7),"8.1") 355 checkSuccess(cur.getField(7,8),"2008-01-01") 356 checkSuccess(cur.getField(7,9),"08:00:00") 357 checkSuccess(cur.getField(7,10),"2008-01-01 08:00:00") 358 checkSuccess(cur.getField(7,11),"2008") 359 checkSuccess(cur.getField(7,12),"char8") 360 checkSuccess(cur.getField(7,13),"text8") 361 checkSuccess(cur.getField(7,14),"varchar8") 362 checkSuccess(cur.getField(7,15),"tinytext8") 363 checkSuccess(cur.getField(7,16),"mediumtext8") 364 checkSuccess(cur.getField(7,17),"longtext8") 365 print() 366 367 print("FIELD LENGTHS BY INDEX: ") 368 checkSuccess(cur.getFieldLength(0,0),1) 369 checkSuccess(cur.getFieldLength(0,1),1) 370 checkSuccess(cur.getFieldLength(0,2),1) 371 checkSuccess(cur.getFieldLength(0,3),1) 372 checkSuccess(cur.getFieldLength(0,4),1) 373 checkSuccess(cur.getFieldLength(0,5),3) 374 checkSuccess(cur.getFieldLength(0,6),3) 375 checkSuccess(cur.getFieldLength(0,7),3) 376 checkSuccess(cur.getFieldLength(0,8),10) 377 checkSuccess(cur.getFieldLength(0,9),8) 378 checkSuccess(cur.getFieldLength(0,10),19) 379 checkSuccess(cur.getFieldLength(0,11),4) 380 checkSuccess(cur.getFieldLength(0,12),5) 381 checkSuccess(cur.getFieldLength(0,13),5) 382 checkSuccess(cur.getFieldLength(0,14),8) 383 checkSuccess(cur.getFieldLength(0,15),9) 384 checkSuccess(cur.getFieldLength(0,16),11) 385 checkSuccess(cur.getFieldLength(0,17),9) 386 print() 387 checkSuccess(cur.getFieldLength(7,0),1) 388 checkSuccess(cur.getFieldLength(7,1),1) 389 checkSuccess(cur.getFieldLength(7,2),1) 390 checkSuccess(cur.getFieldLength(7,3),1) 391 checkSuccess(cur.getFieldLength(7,4),1) 392 checkSuccess(cur.getFieldLength(7,5),3) 393 checkSuccess(cur.getFieldLength(7,6),3) 394 checkSuccess(cur.getFieldLength(7,7),3) 395 checkSuccess(cur.getFieldLength(7,8),10) 396 checkSuccess(cur.getFieldLength(7,9),8) 397 checkSuccess(cur.getFieldLength(7,10),19) 398 checkSuccess(cur.getFieldLength(7,11),4) 399 checkSuccess(cur.getFieldLength(7,12),5) 400 checkSuccess(cur.getFieldLength(7,13),5) 401 checkSuccess(cur.getFieldLength(7,14),8) 402 checkSuccess(cur.getFieldLength(7,15),9) 403 checkSuccess(cur.getFieldLength(7,16),11) 404 checkSuccess(cur.getFieldLength(7,17),9) 405 print() 406 407 print("FIELDS BY NAME: ") 408 checkSuccess(cur.getField(0,"testtinyint"),"1") 409 checkSuccess(cur.getField(0,"testsmallint"),"1") 410 checkSuccess(cur.getField(0,"testmediumint"),"1") 411 checkSuccess(cur.getField(0,"testint"),"1") 412 checkSuccess(cur.getField(0,"testbigint"),"1") 413 checkSuccess(cur.getField(0,"testfloat"),"1.1") 414 checkSuccess(cur.getField(0,"testreal"),"1.1") 415 checkSuccess(cur.getField(0,"testdecimal"),"1.1") 416 checkSuccess(cur.getField(0,"testdate"),"2001-01-01") 417 checkSuccess(cur.getField(0,"testtime"),"01:00:00") 418 checkSuccess(cur.getField(0,"testdatetime"),"2001-01-01 01:00:00") 419 checkSuccess(cur.getField(0,"testyear"),"2001") 420 checkSuccess(cur.getField(0,"testchar"),"char1") 421 checkSuccess(cur.getField(0,"testtext"),"text1") 422 checkSuccess(cur.getField(0,"testvarchar"),"varchar1") 423 checkSuccess(cur.getField(0,"testtinytext"),"tinytext1") 424 checkSuccess(cur.getField(0,"testmediumtext"),"mediumtext1") 425 checkSuccess(cur.getField(0,"testlongtext"),"longtext1") 426 print() 427 checkSuccess(cur.getField(7,"testtinyint"),"8") 428 checkSuccess(cur.getField(7,"testsmallint"),"8") 429 checkSuccess(cur.getField(7,"testmediumint"),"8") 430 checkSuccess(cur.getField(7,"testint"),"8") 431 checkSuccess(cur.getField(7,"testbigint"),"8") 432 checkSuccess(cur.getField(7,"testfloat"),"8.1") 433 checkSuccess(cur.getField(7,"testreal"),"8.1") 434 checkSuccess(cur.getField(7,"testdecimal"),"8.1") 435 checkSuccess(cur.getField(7,"testdate"),"2008-01-01") 436 checkSuccess(cur.getField(7,"testtime"),"08:00:00") 437 checkSuccess(cur.getField(7,"testdatetime"),"2008-01-01 08:00:00") 438 checkSuccess(cur.getField(7,"testyear"),"2008") 439 checkSuccess(cur.getField(7,"testchar"),"char8") 440 checkSuccess(cur.getField(7,"testtext"),"text8") 441 checkSuccess(cur.getField(7,"testvarchar"),"varchar8") 442 checkSuccess(cur.getField(7,"testtinytext"),"tinytext8") 443 checkSuccess(cur.getField(7,"testmediumtext"),"mediumtext8") 444 checkSuccess(cur.getField(7,"testlongtext"),"longtext8") 445 print() 446 447 print("FIELD LENGTHS BY NAME: ") 448 checkSuccess(cur.getFieldLength(0,"testtinyint"),1) 449 checkSuccess(cur.getFieldLength(0,"testsmallint"),1) 450 checkSuccess(cur.getFieldLength(0,"testmediumint"),1) 451 checkSuccess(cur.getFieldLength(0,"testint"),1) 452 checkSuccess(cur.getFieldLength(0,"testbigint"),1) 453 checkSuccess(cur.getFieldLength(0,"testfloat"),3) 454 checkSuccess(cur.getFieldLength(0,"testreal"),3) 455 checkSuccess(cur.getFieldLength(0,"testdecimal"),3) 456 checkSuccess(cur.getFieldLength(0,"testdate"),10) 457 checkSuccess(cur.getFieldLength(0,"testtime"),8) 458 checkSuccess(cur.getFieldLength(0,"testdatetime"),19) 459 checkSuccess(cur.getFieldLength(0,"testyear"),4) 460 checkSuccess(cur.getFieldLength(0,"testchar"),5) 461 checkSuccess(cur.getFieldLength(0,"testtext"),5) 462 checkSuccess(cur.getFieldLength(0,"testvarchar"),8) 463 checkSuccess(cur.getFieldLength(0,"testtinytext"),9) 464 checkSuccess(cur.getFieldLength(0,"testmediumtext"),11) 465 checkSuccess(cur.getFieldLength(0,"testlongtext"),9) 466 print() 467 checkSuccess(cur.getFieldLength(7,"testtinyint"),1) 468 checkSuccess(cur.getFieldLength(7,"testsmallint"),1) 469 checkSuccess(cur.getFieldLength(7,"testmediumint"),1) 470 checkSuccess(cur.getFieldLength(7,"testint"),1) 471 checkSuccess(cur.getFieldLength(7,"testbigint"),1) 472 checkSuccess(cur.getFieldLength(7,"testfloat"),3) 473 checkSuccess(cur.getFieldLength(7,"testreal"),3) 474 checkSuccess(cur.getFieldLength(7,"testdecimal"),3) 475 checkSuccess(cur.getFieldLength(7,"testdate"),10) 476 checkSuccess(cur.getFieldLength(7,"testtime"),8) 477 checkSuccess(cur.getFieldLength(7,"testdatetime"),19) 478 checkSuccess(cur.getFieldLength(7,"testyear"),4) 479 checkSuccess(cur.getFieldLength(7,"testchar"),5) 480 checkSuccess(cur.getFieldLength(7,"testtext"),5) 481 checkSuccess(cur.getFieldLength(7,"testvarchar"),8) 482 checkSuccess(cur.getFieldLength(7,"testtinytext"),9) 483 checkSuccess(cur.getFieldLength(7,"testmediumtext"),11) 484 checkSuccess(cur.getFieldLength(7,"testlongtext"),9) 485 print() 486 487 print("FIELDS BY ARRAY: ") 488 fields=cur.getRow(0) 489 checkSuccess(fields[0],"1") 490 checkSuccess(fields[1],"1") 491 checkSuccess(fields[2],"1") 492 checkSuccess(fields[3],"1") 493 checkSuccess(fields[4],"1") 494 checkSuccess(fields[5],"1.1") 495 checkSuccess(fields[6],"1.1") 496 checkSuccess(fields[7],"1.1") 497 checkSuccess(fields[8],"2001-01-01") 498 checkSuccess(fields[9],"01:00:00") 499 checkSuccess(fields[10],"2001-01-01 01:00:00") 500 checkSuccess(fields[11],"2001") 501 checkSuccess(fields[12],"char1") 502 checkSuccess(fields[13],"text1") 503 checkSuccess(fields[14],"varchar1") 504 checkSuccess(fields[15],"tinytext1") 505 checkSuccess(fields[16],"mediumtext1") 506 checkSuccess(fields[17],"longtext1") 507 print() 508 509 print("FIELD LENGTHS BY ARRAY: ") 510 fieldlens=cur.getRowLengths(0) 511 checkSuccess(fieldlens[0],1) 512 checkSuccess(fieldlens[1],1) 513 checkSuccess(fieldlens[2],1) 514 checkSuccess(fieldlens[3],1) 515 checkSuccess(fieldlens[4],1) 516 checkSuccess(fieldlens[5],3) 517 checkSuccess(fieldlens[6],3) 518 checkSuccess(fieldlens[7],3) 519 checkSuccess(fieldlens[8],10) 520 checkSuccess(fieldlens[9],8) 521 checkSuccess(fieldlens[10],19) 522 checkSuccess(fieldlens[11],4) 523 checkSuccess(fieldlens[12],5) 524 checkSuccess(fieldlens[13],5) 525 checkSuccess(fieldlens[14],8) 526 checkSuccess(fieldlens[15],9) 527 checkSuccess(fieldlens[16],11) 528 checkSuccess(fieldlens[17],9) 529 print() 530 531 print("FIELDS BY DICTIONARY: ") 532 fields=cur.getRowDictionary(0) 533 checkSuccess(fields["testtinyint"],"1") 534 checkSuccess(fields["testsmallint"],"1") 535 checkSuccess(fields["testmediumint"],"1") 536 checkSuccess(fields["testint"],"1") 537 checkSuccess(fields["testbigint"],"1") 538 checkSuccess(fields["testfloat"],"1.1") 539 checkSuccess(fields["testreal"],"1.1") 540 checkSuccess(fields["testdecimal"],"1.1") 541 checkSuccess(fields["testdate"],"2001-01-01") 542 checkSuccess(fields["testtime"],"01:00:00") 543 checkSuccess(fields["testdatetime"],"2001-01-01 01:00:00") 544 checkSuccess(fields["testyear"],"2001") 545 checkSuccess(fields["testchar"],"char1") 546 checkSuccess(fields["testtext"],"text1") 547 checkSuccess(fields["testvarchar"],"varchar1") 548 checkSuccess(fields["testtinytext"],"tinytext1") 549 checkSuccess(fields["testmediumtext"],"mediumtext1") 550 checkSuccess(fields["testlongtext"],"longtext1") 551 print() 552 fields=cur.getRowDictionary(7) 553 checkSuccess(fields["testtinyint"],"8") 554 checkSuccess(fields["testsmallint"],"8") 555 checkSuccess(fields["testmediumint"],"8") 556 checkSuccess(fields["testint"],"8") 557 checkSuccess(fields["testbigint"],"8") 558 checkSuccess(fields["testfloat"],"8.1") 559 checkSuccess(fields["testreal"],"8.1") 560 checkSuccess(fields["testdecimal"],"8.1") 561 checkSuccess(fields["testdate"],"2008-01-01") 562 checkSuccess(fields["testtime"],"08:00:00") 563 checkSuccess(fields["testdatetime"],"2008-01-01 08:00:00") 564 checkSuccess(fields["testyear"],"2008") 565 checkSuccess(fields["testchar"],"char8") 566 checkSuccess(fields["testtext"],"text8") 567 checkSuccess(fields["testvarchar"],"varchar8") 568 checkSuccess(fields["testtinytext"],"tinytext8") 569 checkSuccess(fields["testmediumtext"],"mediumtext8") 570 checkSuccess(fields["testlongtext"],"longtext8") 571 print() 572 573 print("FIELD LENGTHS BY DICTIONARY: ") 574 fieldlengths=cur.getRowLengthsDictionary(0) 575 checkSuccess(fieldlengths["testtinyint"],1) 576 checkSuccess(fieldlengths["testsmallint"],1) 577 checkSuccess(fieldlengths["testmediumint"],1) 578 checkSuccess(fieldlengths["testint"],1) 579 checkSuccess(fieldlengths["testbigint"],1) 580 checkSuccess(fieldlengths["testfloat"],3) 581 checkSuccess(fieldlengths["testreal"],3) 582 checkSuccess(fieldlengths["testdecimal"],3) 583 checkSuccess(fieldlengths["testdate"],10) 584 checkSuccess(fieldlengths["testtime"],8) 585 checkSuccess(fieldlengths["testdatetime"],19) 586 checkSuccess(fieldlengths["testyear"],4) 587 checkSuccess(fieldlengths["testchar"],5) 588 checkSuccess(fieldlengths["testtext"],5) 589 checkSuccess(fieldlengths["testvarchar"],8) 590 checkSuccess(fieldlengths["testtinytext"],9) 591 checkSuccess(fieldlengths["testmediumtext"],11) 592 checkSuccess(fieldlengths["testlongtext"],9) 593 print() 594 fieldlengths=cur.getRowLengthsDictionary(7) 595 checkSuccess(fieldlengths["testtinyint"],1) 596 checkSuccess(fieldlengths["testsmallint"],1) 597 checkSuccess(fieldlengths["testmediumint"],1) 598 checkSuccess(fieldlengths["testint"],1) 599 checkSuccess(fieldlengths["testbigint"],1) 600 checkSuccess(fieldlengths["testfloat"],3) 601 checkSuccess(fieldlengths["testreal"],3) 602 checkSuccess(fieldlengths["testdecimal"],3) 603 checkSuccess(fieldlengths["testdate"],10) 604 checkSuccess(fieldlengths["testtime"],8) 605 checkSuccess(fieldlengths["testdatetime"],19) 606 checkSuccess(fieldlengths["testyear"],4) 607 checkSuccess(fieldlengths["testchar"],5) 608 checkSuccess(fieldlengths["testtext"],5) 609 checkSuccess(fieldlengths["testvarchar"],8) 610 checkSuccess(fieldlengths["testtinytext"],9) 611 checkSuccess(fieldlengths["testmediumtext"],11) 612 checkSuccess(fieldlengths["testlongtext"],9) 613 print() 614 615 print("INDIVIDUAL SUBSTITUTIONS: ") 616 cur.prepareQuery("select $(var1),'$(var2)',$(var3)") 617 cur.substitution("var1",1) 618 cur.substitution("var2","hello") 619 cur.substitution("var3",10.5556,6,4) 620 checkSuccess(cur.executeQuery(),1) 621 print() 622 623 print("FIELDS: ") 624 checkSuccess(cur.getField(0,0),"1") 625 checkSuccess(cur.getField(0,1),"hello") 626 checkSuccess(cur.getField(0,2),"10.5556") 627 print() 628 629 print("ARRAY SUBSTITUTIONS: ") 630 cur.prepareQuery("select $(var1),'$(var2)',$(var3)") 631 cur.substitutions(["var1","var2","var3"], 632 [1,"hello",10.5556],[0,0,6],[0,0,4]) 633 checkSuccess(cur.executeQuery(),1) 634 print() 635 636 print("FIELDS: ") 637 checkSuccess(cur.getField(0,0),"1") 638 checkSuccess(cur.getField(0,1),"hello") 639 checkSuccess(cur.getField(0,2),"10.5556") 640 print() 641 642 print("NULLS as Nones: ") 643 cur.getNullsAsNone() 644 checkSuccess(cur.sendQuery("select NULL,1,NULL"),1) 645 checkSuccess(cur.getField(0,0),None) 646 checkSuccess(cur.getField(0,1),"1") 647 checkSuccess(cur.getField(0,2),None) 648 cur.getNullsAsEmptyStrings() 649 checkSuccess(cur.sendQuery("select NULL,1,NULL"),1) 650 checkSuccess(cur.getField(0,0),"") 651 checkSuccess(cur.getField(0,1),"1") 652 checkSuccess(cur.getField(0,2),"") 653 cur.getNullsAsNone() 654 print() 655 656 print("RESULT SET BUFFER SIZE: ") 657 checkSuccess(cur.getResultSetBufferSize(),0) 658 cur.setResultSetBufferSize(2) 659 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 660 checkSuccess(cur.getResultSetBufferSize(),2) 661 print() 662 checkSuccess(cur.firstRowIndex(),0) 663 checkSuccess(cur.endOfResultSet(),0) 664 checkSuccess(cur.rowCount(),2) 665 checkSuccess(cur.getField(0,0),"1") 666 checkSuccess(cur.getField(1,0),"2") 667 checkSuccess(cur.getField(2,0),"3") 668 print() 669 checkSuccess(cur.firstRowIndex(),2) 670 checkSuccess(cur.endOfResultSet(),0) 671 checkSuccess(cur.rowCount(),4) 672 checkSuccess(cur.getField(6,0),"7") 673 checkSuccess(cur.getField(7,0),"8") 674 print() 675 checkSuccess(cur.firstRowIndex(),6) 676 checkSuccess(cur.endOfResultSet(),0) 677 checkSuccess(cur.rowCount(),8) 678 checkSuccess(cur.getField(8,0),None) 679 print() 680 checkSuccess(cur.firstRowIndex(),8) 681 checkSuccess(cur.endOfResultSet(),1) 682 checkSuccess(cur.rowCount(),8) 683 print() 684 685 print("DONT GET COLUMN INFO: ") 686 cur.dontGetColumnInfo() 687 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 688 checkSuccess(cur.getColumnName(0),None) 689 checkSuccess(cur.getColumnLength(0),0) 690 checkSuccess(cur.getColumnType(0),None) 691 print() 692 cur.getColumnInfo() 693 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 694 checkSuccess(cur.getColumnName(0),"testtinyint") 695 checkSuccess(cur.getColumnLength(0),1) 696 checkSuccess(cur.getColumnType(0),"TINYINT") 697 print() 698 699 print("SUSPENDED SESSION: ") 700 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 701 cur.suspendResultSet() 702 checkSuccess(con.suspendSession(),1) 703 port=con.getConnectionPort() 704 socket=con.getConnectionSocket() 705 checkSuccess(con.resumeSession(port,socket),1) 706 print() 707 checkSuccess(cur.getField(0,0),"1") 708 checkSuccess(cur.getField(1,0),"2") 709 checkSuccess(cur.getField(2,0),"3") 710 checkSuccess(cur.getField(3,0),"4") 711 checkSuccess(cur.getField(4,0),"5") 712 checkSuccess(cur.getField(5,0),"6") 713 checkSuccess(cur.getField(6,0),"7") 714 checkSuccess(cur.getField(7,0),"8") 715 print() 716 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 717 cur.suspendResultSet() 718 checkSuccess(con.suspendSession(),1) 719 port=con.getConnectionPort() 720 socket=con.getConnectionSocket() 721 checkSuccess(con.resumeSession(port,socket),1) 722 print() 723 checkSuccess(cur.getField(0,0),"1") 724 checkSuccess(cur.getField(1,0),"2") 725 checkSuccess(cur.getField(2,0),"3") 726 checkSuccess(cur.getField(3,0),"4") 727 checkSuccess(cur.getField(4,0),"5") 728 checkSuccess(cur.getField(5,0),"6") 729 checkSuccess(cur.getField(6,0),"7") 730 checkSuccess(cur.getField(7,0),"8") 731 print() 732 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 733 cur.suspendResultSet() 734 checkSuccess(con.suspendSession(),1) 735 port=con.getConnectionPort() 736 socket=con.getConnectionSocket() 737 checkSuccess(con.resumeSession(port,socket),1) 738 print() 739 checkSuccess(cur.getField(0,0),"1") 740 checkSuccess(cur.getField(1,0),"2") 741 checkSuccess(cur.getField(2,0),"3") 742 checkSuccess(cur.getField(3,0),"4") 743 checkSuccess(cur.getField(4,0),"5") 744 checkSuccess(cur.getField(5,0),"6") 745 checkSuccess(cur.getField(6,0),"7") 746 checkSuccess(cur.getField(7,0),"8") 747 print() 748 749 print("SUSPENDED RESULT SET: ") 750 cur.setResultSetBufferSize(2) 751 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 752 checkSuccess(cur.getField(2,0),"3") 753 id=cur.getResultSetId() 754 cur.suspendResultSet() 755 checkSuccess(con.suspendSession(),1) 756 port=con.getConnectionPort() 757 socket=con.getConnectionSocket() 758 checkSuccess(con.resumeSession(port,socket),1) 759 checkSuccess(cur.resumeResultSet(id),1) 760 print() 761 checkSuccess(cur.firstRowIndex(),4) 762 checkSuccess(cur.endOfResultSet(),0) 763 checkSuccess(cur.rowCount(),6) 764 checkSuccess(cur.getField(7,0),"8") 765 print() 766 checkSuccess(cur.firstRowIndex(),6) 767 checkSuccess(cur.endOfResultSet(),0) 768 checkSuccess(cur.rowCount(),8) 769 checkSuccess(cur.getField(8,0),None) 770 print() 771 checkSuccess(cur.firstRowIndex(),8) 772 checkSuccess(cur.endOfResultSet(),1) 773 checkSuccess(cur.rowCount(),8) 774 cur.setResultSetBufferSize(0) 775 print() 776 777 print("CACHED RESULT SET: ") 778 cur.cacheToFile("cachefile1") 779 cur.setCacheTtl(200) 780 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 781 filename=cur.getCacheFileName() 782 checkSuccess(filename,"cachefile1") 783 cur.cacheOff() 784 checkSuccess(cur.openCachedResultSet(filename),1) 785 checkSuccess(cur.getField(7,0),"8") 786 print() 787 788 print("COLUMN COUNT FOR CACHED RESULT SET: ") 789 checkSuccess(cur.colCount(),19) 790 print() 791 792 print("COLUMN NAMES FOR CACHED RESULT SET: ") 793 checkSuccess(cur.getColumnName(0),"testtinyint") 794 checkSuccess(cur.getColumnName(1),"testsmallint") 795 checkSuccess(cur.getColumnName(2),"testmediumint") 796 checkSuccess(cur.getColumnName(3),"testint") 797 checkSuccess(cur.getColumnName(4),"testbigint") 798 checkSuccess(cur.getColumnName(5),"testfloat") 799 checkSuccess(cur.getColumnName(6),"testreal") 800 checkSuccess(cur.getColumnName(7),"testdecimal") 801 checkSuccess(cur.getColumnName(8),"testdate") 802 checkSuccess(cur.getColumnName(9),"testtime") 803 checkSuccess(cur.getColumnName(10),"testdatetime") 804 checkSuccess(cur.getColumnName(11),"testyear") 805 checkSuccess(cur.getColumnName(12),"testchar") 806 checkSuccess(cur.getColumnName(13),"testtext") 807 checkSuccess(cur.getColumnName(14),"testvarchar") 808 checkSuccess(cur.getColumnName(15),"testtinytext") 809 checkSuccess(cur.getColumnName(16),"testmediumtext") 810 checkSuccess(cur.getColumnName(17),"testlongtext") 811 cols=cur.getColumnNames() 812 checkSuccess(cols[0],"testtinyint") 813 checkSuccess(cols[1],"testsmallint") 814 checkSuccess(cols[2],"testmediumint") 815 checkSuccess(cols[3],"testint") 816 checkSuccess(cols[4],"testbigint") 817 checkSuccess(cols[5],"testfloat") 818 checkSuccess(cols[6],"testreal") 819 checkSuccess(cols[7],"testdecimal") 820 checkSuccess(cols[8],"testdate") 821 checkSuccess(cols[9],"testtime") 822 checkSuccess(cols[10],"testdatetime") 823 checkSuccess(cols[11],"testyear") 824 checkSuccess(cols[12],"testchar") 825 checkSuccess(cols[13],"testtext") 826 checkSuccess(cols[14],"testvarchar") 827 checkSuccess(cols[15],"testtinytext") 828 checkSuccess(cols[16],"testmediumtext") 829 checkSuccess(cols[17],"testlongtext") 830 print() 831 832 print("CACHED RESULT SET WITH RESULT SET BUFFER SIZE: ") 833 cur.setResultSetBufferSize(2) 834 cur.cacheToFile("cachefile1") 835 cur.setCacheTtl(200) 836 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 837 filename=cur.getCacheFileName() 838 checkSuccess(filename,"cachefile1") 839 cur.cacheOff() 840 checkSuccess(cur.openCachedResultSet(filename),1) 841 checkSuccess(cur.getField(7,0),"8") 842 checkSuccess(cur.getField(8,0),None) 843 cur.setResultSetBufferSize(0) 844 print() 845 846 print("FROM ONE CACHE FILE TO ANOTHER: ") 847 cur.cacheToFile("cachefile2") 848 checkSuccess(cur.openCachedResultSet("cachefile1"),1) 849 cur.cacheOff() 850 checkSuccess(cur.openCachedResultSet("cachefile2"),1) 851 checkSuccess(cur.getField(7,0),"8") 852 checkSuccess(cur.getField(8,0),None) 853 print() 854 855 print("FROM ONE CACHE FILE TO ANOTHER WITH RESULT SET BUFFER SIZE: ") 856 cur.setResultSetBufferSize(2) 857 cur.cacheToFile("cachefile2") 858 checkSuccess(cur.openCachedResultSet("cachefile1"),1) 859 cur.cacheOff() 860 checkSuccess(cur.openCachedResultSet("cachefile2"),1) 861 checkSuccess(cur.getField(7,0),"8") 862 checkSuccess(cur.getField(8,0),None) 863 cur.setResultSetBufferSize(0) 864 print() 865 866 print("CACHED RESULT SET WITH SUSPEND AND RESULT SET BUFFER SIZE: ") 867 cur.setResultSetBufferSize(2) 868 cur.cacheToFile("cachefile1") 869 cur.setCacheTtl(200) 870 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 871 checkSuccess(cur.getField(2,0),"3") 872 filename=cur.getCacheFileName() 873 checkSuccess(filename,"cachefile1") 874 id=cur.getResultSetId() 875 cur.suspendResultSet() 876 checkSuccess(con.suspendSession(),1) 877 port=con.getConnectionPort() 878 socket=con.getConnectionSocket() 879 print() 880 checkSuccess(con.resumeSession(port,socket),1) 881 checkSuccess(cur.resumeCachedResultSet(id,filename),1) 882 print() 883 checkSuccess(cur.firstRowIndex(),4) 884 checkSuccess(cur.endOfResultSet(),0) 885 checkSuccess(cur.rowCount(),6) 886 checkSuccess(cur.getField(7,0),"8") 887 print() 888 checkSuccess(cur.firstRowIndex(),6) 889 checkSuccess(cur.endOfResultSet(),0) 890 checkSuccess(cur.rowCount(),8) 891 checkSuccess(cur.getField(8,0),None) 892 print() 893 checkSuccess(cur.firstRowIndex(),8) 894 checkSuccess(cur.endOfResultSet(),1) 895 checkSuccess(cur.rowCount(),8) 896 cur.cacheOff() 897 print() 898 checkSuccess(cur.openCachedResultSet(filename),1) 899 checkSuccess(cur.getField(7,0),"8") 900 checkSuccess(cur.getField(8,0),None) 901 cur.setResultSetBufferSize(0) 902 print() 903 904 print("COMMIT AND ROLLBACK: ") 905 secondcon=PySQLRClient.sqlrconnection("sqlrelay",9000, 906 "/tmp/test.socket", 907 "test","test") 908 secondcur=PySQLRClient.sqlrcursor(secondcon) 909 checkSuccess(secondcur.sendQuery("select count(*) from testtable"),1) 910 checkSuccess(secondcur.getField(0,0),"0") 911 checkSuccess(con.commit(),1) 912 checkSuccess(secondcon.commit(),1) 913 checkSuccess(secondcur.sendQuery("select count(*) from testtable"),1) 914 checkSuccess(secondcur.getField(0,0),"8") 915 checkSuccess(con.autoCommitOn(),1) 916 checkSuccess(cur.sendQuery("insert into testdb.testtable values (10,10,10,10,10,10.1,10.1,10.1,'2010-01-01','10:00:00','2010-01-01 10:00:00','2010','char10','text10','varchar10','tinytext10','mediumtext10','longtext10',NULL)"),1) 917 checkSuccess(secondcon.commit(),1) 918 checkSuccess(secondcur.sendQuery("select count(*) from testtable"),1) 919 checkSuccess(secondcur.getField(0,0),"9") 920 checkSuccess(con.autoCommitOff(),1) 921 secondcon.commit() 922 print() 923 924 print("ROW RANGE:") 925 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),1) 926 print() 927 rows=cur.getRowRange(0,5) 928 checkSuccess(rows[0][0],"1") 929 checkSuccess(rows[0][1],"1") 930 checkSuccess(rows[0][2],"1") 931 checkSuccess(rows[0][3],"1") 932 checkSuccess(rows[0][4],"1") 933 checkSuccess(rows[0][5],"1.1") 934 checkSuccess(rows[0][6],"1.1") 935 checkSuccess(rows[0][7],"1.1") 936 checkSuccess(rows[0][8],"2001-01-01") 937 checkSuccess(rows[0][9],"01:00:00") 938 checkSuccess(rows[0][10],"2001-01-01 01:00:00") 939 checkSuccess(rows[0][11],"2001") 940 checkSuccess(rows[0][12],"char1") 941 checkSuccess(rows[0][13],"text1") 942 checkSuccess(rows[0][14],"varchar1") 943 checkSuccess(rows[0][15],"tinytext1") 944 checkSuccess(rows[0][16],"mediumtext1") 945 checkSuccess(rows[0][17],"longtext1") 946 print() 947 checkSuccess(rows[1][0],"2") 948 checkSuccess(rows[1][1],"2") 949 checkSuccess(rows[1][2],"2") 950 checkSuccess(rows[1][3],"2") 951 checkSuccess(rows[1][4],"2") 952 checkSuccess(rows[1][5],"2.1") 953 checkSuccess(rows[1][6],"2.1") 954 checkSuccess(rows[1][7],"2.1") 955 checkSuccess(rows[1][8],"2002-01-01") 956 checkSuccess(rows[1][9],"02:00:00") 957 checkSuccess(rows[1][10],"2002-01-01 02:00:00") 958 checkSuccess(rows[1][11],"2002") 959 checkSuccess(rows[1][12],"char2") 960 checkSuccess(rows[1][13],"text2") 961 checkSuccess(rows[1][14],"varchar2") 962 checkSuccess(rows[1][15],"tinytext2") 963 checkSuccess(rows[1][16],"mediumtext2") 964 checkSuccess(rows[1][17],"longtext2") 965 print() 966 checkSuccess(rows[2][0],"3") 967 checkSuccess(rows[2][1],"3") 968 checkSuccess(rows[2][2],"3") 969 checkSuccess(rows[2][3],"3") 970 checkSuccess(rows[2][4],"3") 971 checkSuccess(rows[2][5],"3.1") 972 checkSuccess(rows[2][6],"3.1") 973 checkSuccess(rows[2][7],"3.1") 974 checkSuccess(rows[2][8],"2003-01-01") 975 checkSuccess(rows[2][9],"03:00:00") 976 checkSuccess(rows[2][10],"2003-01-01 03:00:00") 977 checkSuccess(rows[2][11],"2003") 978 checkSuccess(rows[2][12],"char3") 979 checkSuccess(rows[2][13],"text3") 980 checkSuccess(rows[2][14],"varchar3") 981 checkSuccess(rows[2][15],"tinytext3") 982 checkSuccess(rows[2][16],"mediumtext3") 983 checkSuccess(rows[2][17],"longtext3") 984 print() 985 checkSuccess(rows[3][0],"4") 986 checkSuccess(rows[3][1],"4") 987 checkSuccess(rows[3][2],"4") 988 checkSuccess(rows[3][3],"4") 989 checkSuccess(rows[3][4],"4") 990 checkSuccess(rows[3][5],"4.1") 991 checkSuccess(rows[3][6],"4.1") 992 checkSuccess(rows[3][7],"4.1") 993 checkSuccess(rows[3][8],"2004-01-01") 994 checkSuccess(rows[3][9],"04:00:00") 995 checkSuccess(rows[3][10],"2004-01-01 04:00:00") 996 checkSuccess(rows[3][11],"2004") 997 checkSuccess(rows[3][12],"char4") 998 checkSuccess(rows[3][13],"text4") 999 checkSuccess(rows[3][14],"varchar4") 1000 checkSuccess(rows[3][15],"tinytext4") 1001 checkSuccess(rows[3][16],"mediumtext4") 1002 checkSuccess(rows[3][17],"longtext4") 1003 print() 1004 checkSuccess(rows[4][0],"5") 1005 checkSuccess(rows[4][1],"5") 1006 checkSuccess(rows[4][2],"5") 1007 checkSuccess(rows[4][3],"5") 1008 checkSuccess(rows[4][4],"5") 1009 checkSuccess(rows[4][5],"5.1") 1010 checkSuccess(rows[4][6],"5.1") 1011 checkSuccess(rows[4][7],"5.1") 1012 checkSuccess(rows[4][8],"2005-01-01") 1013 checkSuccess(rows[4][9],"05:00:00") 1014 checkSuccess(rows[4][10],"2005-01-01 05:00:00") 1015 checkSuccess(rows[4][11],"2005") 1016 checkSuccess(rows[4][12],"char5") 1017 checkSuccess(rows[4][13],"text5") 1018 checkSuccess(rows[4][14],"varchar5") 1019 checkSuccess(rows[4][15],"tinytext5") 1020 checkSuccess(rows[4][16],"mediumtext5") 1021 checkSuccess(rows[4][17],"longtext5") 1022 print() 1023 checkSuccess(rows[5][0],"6") 1024 checkSuccess(rows[5][1],"6") 1025 checkSuccess(rows[5][2],"6") 1026 checkSuccess(rows[5][3],"6") 1027 checkSuccess(rows[5][4],"6") 1028 checkSuccess(rows[5][5],"6.1") 1029 checkSuccess(rows[5][6],"6.1") 1030 checkSuccess(rows[5][7],"6.1") 1031 checkSuccess(rows[5][8],"2006-01-01") 1032 checkSuccess(rows[5][9],"06:00:00") 1033 checkSuccess(rows[5][10],"2006-01-01 06:00:00") 1034 checkSuccess(rows[5][11],"2006") 1035 checkSuccess(rows[5][12],"char6") 1036 checkSuccess(rows[5][13],"text6") 1037 checkSuccess(rows[5][14],"varchar6") 1038 checkSuccess(rows[5][15],"tinytext6") 1039 checkSuccess(rows[5][16],"mediumtext6") 1040 checkSuccess(rows[5][17],"longtext6") 1041 print() 1042 1043 print("FINISHED SUSPENDED SESSION: ") 1044 checkSuccess(cur.sendQuery("select * from testtable order by testint"),1) 1045 checkSuccess(cur.getField(4,0),"5") 1046 checkSuccess(cur.getField(5,0),"6") 1047 checkSuccess(cur.getField(6,0),"7") 1048 checkSuccess(cur.getField(7,0),"8") 1049 id=cur.getResultSetId() 1050 cur.suspendResultSet() 1051 checkSuccess(con.suspendSession(),1) 1052 port=con.getConnectionPort() 1053 socket=con.getConnectionSocket() 1054 checkSuccess(con.resumeSession(port,socket),1) 1055 checkSuccess(cur.resumeResultSet(id),1) 1056 checkSuccess(cur.getField(4,0),None) 1057 checkSuccess(cur.getField(5,0),None) 1058 checkSuccess(cur.getField(6,0),None) 1059 checkSuccess(cur.getField(7,0),None) 1060 print() 1061 1062 # drop existing table 1063 cur.sendQuery("drop table testtable") 1064 1065 # invalid queries... 1066 print("INVALID QUERIES: ") 1067 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),0) 1068 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),0) 1069 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),0) 1070 checkSuccess(cur.sendQuery("select * from testtable order by testtinyint"),0) 1071 print() 1072 checkSuccess(cur.sendQuery("insert into testtable values (1,2,3,4)"),0) 1073 checkSuccess(cur.sendQuery("insert into testtable values (1,2,3,4)"),0) 1074 checkSuccess(cur.sendQuery("insert into testtable values (1,2,3,4)"),0) 1075 checkSuccess(cur.sendQuery("insert into testtable values (1,2,3,4)"),0) 1076 print() 1077 checkSuccess(cur.sendQuery("create table testtable"),0) 1078 checkSuccess(cur.sendQuery("create table testtable"),0) 1079 checkSuccess(cur.sendQuery("create table testtable"),0) 1080 checkSuccess(cur.sendQuery("create table testtable"),0) 1081 print() 1082 1083if __name__ == "__main__": 1084 main() 1085 sys.exit(0) 1086