Bug #87776 | Wrong return type from fetch_all() and unknown situation: | ||
---|---|---|---|
Submitted: | 15 Sep 2017 14:10 | Modified: | 28 Apr 2022 16:40 |
Reporter: | Shahriyar Rzayev | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | Connector / Python | Severity: | S2 (Serious) |
Version: | 8.0.4 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[15 Sep 2017 14:10]
Shahriyar Rzayev
[20 Sep 2017 12:14]
MySQL Verification Team
Hello Shahriyar, Thank you for the report and feedback. Thanks, Umesh
[20 Sep 2017 13:53]
Nuno Mariz
Hi Shahriyar, Thank you for your report. In fact, the documentation is not clear about this. But the reference docs refers to 'item', because it can be a 'mysqlx.DbDoc' if Collections are being used or 'mysqlx.Row' if it's a session.sql() execution. - session.sql() will return a 'mysqlx.SqlResult' object and when 'fetch_all()' is called will return a list of 'mysqlx.Row' - Collection.find().execute() will return a 'mysql.DocResult' object and when 'fetch_all()' is called will return a list of 'mysqlx.DbDoc' For the 'mysqlx.Row.get_string()' method, you should provide the column name in the SQL for simplicity. For example if you have: command = "select count(*) as total from {}.{}" You can do self.session.sql(command.format(schema_name, table_name)) result = sql.execute() for row in result.fetch_all(): print(row.get_string("total")) or print(row["total"])