pub struct SqlExecutor;Implementations§
Source§impl SqlExecutor
impl SqlExecutor
pub async fn execute_statements(db: &Database, sql: &str) -> DatabaseResult<()>
pub async fn execute_statements_parsed( db: &dyn DatabaseProvider, sql: &str, ) -> DatabaseResult<()>
Sourcepub fn parse_sql_statements(sql: &str) -> DatabaseResult<Vec<String>>
pub fn parse_sql_statements(sql: &str) -> DatabaseResult<Vec<String>>
Split a Postgres SQL script into individual statements while preserving
the original source text. Splits on top-level ;; ignores
semicolons inside single quotes, dollar-quoted bodies ($$ … $$ and
$tag$ … $tag$), -- line comments, and /* … */ block comments
(nested). Unterminated quotes or comments return
RepositoryError::Internal; grammar errors are left for Postgres to
surface at execute time. Preserving the original text is the
reason this is hand-rolled rather than sqlparser: round-tripping
through Statement::Display drops syntactic detail such as the
empty parameter list on CREATE FUNCTION foo(), which Postgres then
rejects.
pub async fn execute_query( db: &Database, query: &str, ) -> DatabaseResult<QueryResult>
pub async fn execute_file(db: &Database, file_path: &str) -> DatabaseResult<()>
pub async fn execute_file_parsed( db: &dyn DatabaseProvider, file_path: &str, ) -> DatabaseResult<()>
pub async fn table_exists( db: &Database, table_name: &str, ) -> DatabaseResult<bool>
pub async fn column_exists( db: &Database, table_name: &str, column_name: &str, ) -> DatabaseResult<bool>
Trait Implementations§
Source§impl Clone for SqlExecutor
impl Clone for SqlExecutor
Source§fn clone(&self) -> SqlExecutor
fn clone(&self) -> SqlExecutor
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SqlExecutor
impl Debug for SqlExecutor
impl Copy for SqlExecutor
Auto Trait Implementations§
impl Freeze for SqlExecutor
impl RefUnwindSafe for SqlExecutor
impl Send for SqlExecutor
impl Sync for SqlExecutor
impl Unpin for SqlExecutor
impl UnsafeUnpin for SqlExecutor
impl UnwindSafe for SqlExecutor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more