Skip to content

Commit 1deb9f3

Browse files
authored
Merge pull request #67 from cloud11665/main
fix panic when asking for .description on a newly created cursor
2 parents ceb226d + 080ec5c commit 1deb9f3

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

src/lib.rs

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -276,22 +276,27 @@ impl Cursor {
276276
fn description(self_: PyRef<'_, Self>) -> PyResult<Option<&PyTuple>> {
277277
let stmt = self_.stmt.borrow();
278278
let mut elements: Vec<Py<PyAny>> = vec![];
279-
for column in stmt.as_ref().unwrap().columns() {
280-
let name = column.name();
281-
let element = (
282-
name,
283-
self_.py().None(),
284-
self_.py().None(),
285-
self_.py().None(),
286-
self_.py().None(),
287-
self_.py().None(),
288-
self_.py().None(),
289-
)
290-
.to_object(self_.py());
291-
elements.push(element);
279+
match stmt.as_ref() {
280+
Some(stmt) => {
281+
for column in stmt.columns() {
282+
let name = column.name();
283+
let element = (
284+
name,
285+
self_.py().None(),
286+
self_.py().None(),
287+
self_.py().None(),
288+
self_.py().None(),
289+
self_.py().None(),
290+
self_.py().None(),
291+
)
292+
.to_object(self_.py());
293+
elements.push(element);
294+
}
295+
let elements = PyTuple::new(self_.py(), elements);
296+
Ok(Some(elements))
297+
}
298+
None => Ok(None),
292299
}
293-
let elements = PyTuple::new(self_.py(), elements);
294-
Ok(Some(elements))
295300
}
296301

297302
fn fetchone(self_: PyRef<'_, Self>) -> PyResult<Option<&PyTuple>> {

0 commit comments

Comments
 (0)