MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / track_statement_parse_failure

Method track_statement_parse_failure

src/adapter/src/client.rs:645–680  ·  view source on GitHub ↗
(&self, parse_error: &ParserStatementError)

Source from the content-addressed store, hash-verified

643 }
644
645 fn track_statement_parse_failure(&self, parse_error: &ParserStatementError) {
646 let session = self.session.as_ref().expect("session invariant violated");
647 let Some(user_id) = session.user().external_metadata.as_ref().map(|m| m.user_id) else {
648 return;
649 };
650 let Some(segment_client) = &self.segment_client else {
651 return;
652 };
653 let Some(statement_kind) = parse_error.statement else {
654 return;
655 };
656 let Some((action, object_type)) = telemetry::analyze_audited_statement(statement_kind)
657 else {
658 return;
659 };
660 let event_type = StatementFailureType::ParseFailure;
661 let event_name = format!(
662 "{} {} {}",
663 object_type.as_title_case(),
664 action.as_title_case(),
665 event_type.as_title_case(),
666 );
667 segment_client.environment_track(
668 &self.environment_id,
669 event_name,
670 json!({
671 "statement_kind": statement_kind,
672 "error": &parse_error.error,
673 }),
674 EventDetails {
675 user_id: Some(user_id),
676 application_name: Some(session.application_name()),
677 ..Default::default()
678 },
679 );
680 }
681
682 // Verify and return the named prepared statement. We need to verify each use
683 // to make sure the prepared statement is still safe to use.

Callers 1

parseMethod · 0.80

Calls 7

expectMethod · 0.80
environment_trackMethod · 0.80
as_refMethod · 0.45
mapMethod · 0.45
userMethod · 0.45
application_nameMethod · 0.45

Tested by

no test coverage detected