Skip to content

Commit

Permalink
Merge 'Improve error reporting in Python bindings' from amuldotexe
Browse files Browse the repository at this point in the history
Solving issue #494   , changes made at 5 places where todo macros were
replaced with relevant errors to avoid the crashes _for now_

Reviewed-by: Avinash Sajjanshetty <[email protected]>

Closes #526
  • Loading branch information
penberg committed Dec 21, 2024
2 parents 82bc950 + b7b22f3 commit 307a7cb
Showing 1 changed file with 24 additions and 11 deletions.
35 changes: 24 additions & 11 deletions bindings/python/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,10 @@ impl Cursor {

// TODO: use stmt_is_dml to set rowcount
if stmt_is_dml {
todo!()
return Err(PyErr::new::<NotSupportedError, _>(
"DML statements (INSERT/UPDATE/DELETE) are not fully supported in this version",
)
.into());
}

Ok(Cursor {
Expand Down Expand Up @@ -181,18 +184,24 @@ impl Cursor {
}
}

pub fn close(&self) -> Result<()> {
todo!()
pub fn close(&self) -> PyResult<()> {
Err(PyErr::new::<NotSupportedError, _>(
"close() is not supported in this version",
))
}

#[pyo3(signature = (sql, parameters=None))]
pub fn executemany(&self, sql: &str, parameters: Option<Py<PyList>>) {
todo!()
pub fn executemany(&self, sql: &str, parameters: Option<Py<PyList>>) -> PyResult<()> {
Err(PyErr::new::<NotSupportedError, _>(
"executemany() is not supported in this version",
))
}

#[pyo3(signature = (size=None))]
pub fn fetchmany(&self, size: Option<i64>) {
todo!()
pub fn fetchmany(&self, size: Option<i64>) -> PyResult<Option<Vec<PyObject>>> {
Err(PyErr::new::<NotSupportedError, _>(
"fetchmany() is not supported in this version",
))
}
}

Expand Down Expand Up @@ -228,12 +237,16 @@ impl Connection {
drop(self.conn.clone());
}

pub fn commit(&self) {
todo!()
pub fn commit(&self) -> PyResult<()> {
Err(PyErr::new::<NotSupportedError, _>(
"Transactions are not supported in this version",
))
}

pub fn rollback(&self) {
todo!()
pub fn rollback(&self) -> PyResult<()> {
Err(PyErr::new::<NotSupportedError, _>(
"Transactions are not supported in this version",
))
}
}

Expand Down

0 comments on commit 307a7cb

Please sign in to comment.