← Back to team overview

agesys-dev team mailing list archive

[Bug 1004991] Re: Calling a stored procedure says rows returned but won't let me fetch results.

 

** Description changed:

  Calling a stored procedure shows a positive row count but won't let me
  fetch results.
  
- Client running Ubuntu 12.04 LTS, Python 2.7.3, OurSQL 0.9.2, and libmysqlclient-dev 5.5
+ Client running Ubuntu 12.04 LTS, Python 2.7.3, OurSQL 0.9.2, and
+ libmysqlclient-dev 5.5
+ 
  Server is an Amazon RDS MySQL instance running MySQL 5.5.12
  
- Python Code: 
+ Create Table:
+ delimiter $$
+ 
+ CREATE TABLE `test` (
+   `idtest` int(11) NOT NULL AUTO_INCREMENT,
+   `data` int(11) DEFAULT NULL,
+   PRIMARY KEY (`idtest`),
+   UNIQUE KEY `idtest_UNIQUE` (`idtest`)
+ ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1$$
+ 
+ Populate this table. I have 189 entries all with random numbers for
+ `data`.
+ 
+ Create Procedure:
+ delimiter $$
+ 
+ CREATE DEFINER=`db`@`%` PROCEDURE `foo`(
+ IN a INT
+ ,IN b INT
+ ,IN c INT
+ )
+ BEGIN
+ SELECT SQL_CACHE 
+ `data`
+ FROM `db`.`test`
+ ORDER BY a ASC;
+ END$$
+ 
+ Python Code (test.py):
  import oursql
  
  conn = oursql.connect(host='www.example.com', user='foo', passwd='bar', port=3306)
  curs = conn.cursor()
  
  curs.execute("CALL db.foo(?, ?, ?)", (1, 2, 3))
  print("Row count: " + str(curs.rowcount))
  print(curs.nextset())
  res = curs.fetchone()
  print(res)
  curs.close()
  
  Output:
  Row count: 189
  Traceback (most recent call last):
-   File "test.py", line 8, in <module>
-     print(curs.nextset())
-   File "cursor.pyx", line 169, in oursql.Cursor.nextset (oursqlx/oursql.c:16436)
-   File "cursor.pyx", line 161, in oursql.Cursor._check_statements (oursqlx/oursql.c:16392)
+   File "test.py", line 8, in <module>
+     print(curs.nextset())
+   File "cursor.pyx", line 169, in oursql.Cursor.nextset (oursqlx/oursql.c:16436)
+   File "cursor.pyx", line 161, in oursql.Cursor._check_statements (oursqlx/oursql.c:16392)
  oursql.ProgrammingError: (None, 'no results available', None)

-- 
You received this bug notification because you are a member of Agesys
Team, which is subscribed to oursql.
https://bugs.launchpad.net/bugs/1004991

Title:
  Calling a stored procedure says rows returned but won't let me fetch
  results.

Status in oursql:
  New

Bug description:
  Calling a stored procedure shows a positive row count but won't let me
  fetch results.

  Client running Ubuntu 12.04 LTS, Python 2.7.3, OurSQL 0.9.2, and
  libmysqlclient-dev 5.5

  Server is an Amazon RDS MySQL instance running MySQL 5.5.12

  Create Table:
  delimiter $$

  CREATE TABLE `test` (
    `idtest` int(11) NOT NULL AUTO_INCREMENT,
    `data` int(11) DEFAULT NULL,
    PRIMARY KEY (`idtest`),
    UNIQUE KEY `idtest_UNIQUE` (`idtest`)
  ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1$$

  Populate this table. I have 189 entries all with random numbers for
  `data`.

  Create Procedure:
  delimiter $$

  CREATE DEFINER=`db`@`%` PROCEDURE `foo`(
  IN a INT
  ,IN b INT
  ,IN c INT
  )
  BEGIN
  SELECT SQL_CACHE 
  `data`
  FROM `db`.`test`
  ORDER BY a ASC;
  END$$

  Python Code (test.py):
  import oursql

  conn = oursql.connect(host='www.example.com', user='foo', passwd='bar', port=3306)
  curs = conn.cursor()

  curs.execute("CALL db.foo(?, ?, ?)", (1, 2, 3))
  print("Row count: " + str(curs.rowcount))
  print(curs.nextset())
  res = curs.fetchone()
  print(res)
  curs.close()

  Output:
  Row count: 189
  Traceback (most recent call last):
    File "test.py", line 8, in <module>
      print(curs.nextset())
    File "cursor.pyx", line 169, in oursql.Cursor.nextset (oursqlx/oursql.c:16436)
    File "cursor.pyx", line 161, in oursql.Cursor._check_statements (oursqlx/oursql.c:16392)
  oursql.ProgrammingError: (None, 'no results available', None)

To manage notifications about this bug go to:
https://bugs.launchpad.net/oursql/+bug/1004991/+subscriptions


References