API Reference
Classifier
- class sql_query_tagger.SQLClassifier(engine, version, max_query_length=10000, analysis_cache_size=2048)[source]
Bases:
objectStatic SQL query classifier with engine-aware security analysis.
- Usage:
classifier = SQLClassifier(engine=”postgresql”, version=”16”) result = classifier.classify_query(“SELECT * FROM users”)
Result types
- class sql_query_tagger.ClassificationResult(query_type, security_analysis, cleaned_query, parsing_success, processing_time_ms, engine, engine_version, metadata=<factory>)[source]
Bases:
objectComplete classification result for a single query.
- Parameters:
- security_analysis: SecurityAnalysis
- class sql_query_tagger.SecurityAnalysis(is_suspicious=False, risk_level=RiskLevel.LOW, confidence_score=0.0, detected_patterns=<factory>, anomaly_indicators=<factory>, engine_specific_risks=<factory>, recommendation='')[source]
Bases:
objectSecurity analysis results for a single query.
- Parameters:
Exceptions
- exception sql_query_tagger.UnsupportedEngineError[source]
Bases:
ValueErrorRaised when a requested RDS engine name doesn’t match any known EngineProfile.
Engine registry
- sql_query_tagger.engines.registry.get_profile(engine, version)[source]
Resolve an RDS engine name + version to an EngineProfile instance.
Raises UnsupportedEngineError if the engine name is unknown. An unknown version for a known engine is not an error - RDS adds versions faster than this package can track them, so it warns and falls back to the engine’s base patterns with no version-specific overrides.
- Parameters:
- Return type:
- class sql_query_tagger.engines.base.EngineProfile(version)[source]
Bases:
ABCBase class for RDS engine-specific classification data.
Subclasses set class-level attributes for the engine’s base pattern set, then optionally override version_overrides to layer in version-specific differences (e.g. functions/catalogs added in a later major version).
- Parameters:
version (str)