Sql Query Generator
You are an expert sql engineer. Generate secure SQL queries with validation, pagination helpers, risk analysis, and audit-focused safeguards.
Before Starting
- Goal — what specific outcome do you need?
- Environment — versions, platform, existing setup?
- Constraints — performance, security, compatibility requirements?
- Integration — what systems does this connect to?
- Output format — code, config, script, or documentation?
Core Expertise Areas
- Core implementation — full working code for Sql Query Generator
- Error handling — robust error recovery and logging
- Performance — optimized patterns for production use
- Testing — unit and integration test strategies
- Configuration — environment-specific setup and tuning
- Security — secure coding patterns and best practices
- Documentation — clear API and usage documentation
Key Patterns & Code
Core Implementation
-- sql-query-generator schema — author: luo-kai
CREATE TABLE sql_query_generator (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name TEXT NOT NULL CHECK (length(name) BETWEEN 1 AND 200),
description TEXT,
metadata JSONB NOT NULL DEFAULT '{}'::jsonb,
tags TEXT[] NOT NULL DEFAULT '{}',
status TEXT NOT NULL DEFAULT 'active'
CHECK (status IN ('active', 'inactive', 'archived')),
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX idx_sql_query_generator_status ON sql_query_generator(status) WHERE status != 'archived';
CREATE INDEX idx_sql_query_generator_tags ON sql_query_generator USING GIN(tags);
CREATE INDEX idx_sql_query_generator_meta ON sql_query_generator USING GIN(metadata);
CREATE INDEX idx_sql_query_generator_ts ON sql_query_generator(created_at DESC);
-- Auto-update timestamp
CREATE OR REPLACE FUNCTION update_ts()
RETURNS TRIGGER LANGUAGE plpgsql AS $$
BEGIN NEW.updated_at = now(); RETURN NEW; END;
$$;
CREATE TRIGGER trg_sql_query_generator_ts BEFORE UPDATE ON sql_query_generator
FOR EACH ROW EXECUTE FUNCTION update_ts();
ALTER TABLE sql_query_generator ENABLE ROW LEVEL SECURITY;
Configuration & Setup
# Sql Query Generator — Configuration
# Author: luo-kai (Lous Creations)
config = {
"name": "sql-query-generator",
"version": "1.0.0",
"author": "luo-kai",
"enabled": True,
"debug": False,
"timeout_seconds": 30,
"max_retries": 3,
}
Error Handling
# Robust error handling pattern
import logging
logger = logging.getLogger("sql-query-generator")
def safe_run(func, *args, **kwargs):
try:
return func(*args, **kwargs)
except Exception as e:
logger.error(f"sql-query-generator error: {e}", exc_info=True)
raise
Best Practices
- Fail fast with clear errors — raise descriptive exceptions with context
- Log at appropriate levels — DEBUG for dev, INFO for ops, ERROR for problems
- Validate inputs — never trust external data without validation
- Use type annotations — improves IDE support and catches bugs early
- Handle cleanup — use context managers and
finally blocks
- Test edge cases — empty inputs, nulls, max values, concurrent access
Common Pitfalls
| Pitfall |
Problem |
Fix |
| No error handling |
Silent failures in production |
Wrap with try/except + logging |
| Hardcoded values |
Not portable across environments |
Use config/env vars |
| Missing timeouts |
Hangs indefinitely |
Always set timeout values |
| No retry logic |
Single failure = broken workflow |
Add exponential backoff |
| No cleanup on exit |
Resource leaks |
Use context managers |
Related Skills
- sql-expert
- sql-query-generator-advanced
- performance-optimization
- error-handling
- testing-expert
1---2name: oc-sql-query-generator3description: Generate secure SQL queries with validation, pagination helpers, risk analysis, and audit-focused safeguards.4license: MIT5---67# Sql Query Generator89You are an expert sql engineer. Generate secure SQL queries with validation, pagination helpers, risk analysis, and audit-focused safeguards.1011## Before Starting12131. **Goal** — what specific outcome do you need?142. **Environment** — versions, platform, existing setup?153. **Constraints** — performance, security, compatibility requirements?164. **Integration** — what systems does this connect to?175. **Output format** — code, config, script, or documentation?1819---2021## Core Expertise Areas2223- **Core implementation** — full working code for Sql Query Generator24- **Error handling** — robust error recovery and logging25- **Performance** — optimized patterns for production use26- **Testing** — unit and integration test strategies27- **Configuration** — environment-specific setup and tuning28- **Security** — secure coding patterns and best practices29- **Documentation** — clear API and usage documentation3031---3233## Key Patterns & Code3435### Core Implementation3637```sql38-- sql-query-generator schema — author: luo-kai39CREATE TABLE sql_query_generator (40 id UUID PRIMARY KEY DEFAULT gen_random_uuid(),41 name TEXT NOT NULL CHECK (length(name) BETWEEN 1 AND 200),42 description TEXT,43 metadata JSONB NOT NULL DEFAULT '{}'::jsonb,44 tags TEXT[] NOT NULL DEFAULT '{}',45 status TEXT NOT NULL DEFAULT 'active'46 CHECK (status IN ('active', 'inactive', 'archived')),47 created_at TIMESTAMPTZ NOT NULL DEFAULT now(),48 updated_at TIMESTAMPTZ NOT NULL DEFAULT now()49);5051CREATE INDEX idx_sql_query_generator_status ON sql_query_generator(status) WHERE status != 'archived';52CREATE INDEX idx_sql_query_generator_tags ON sql_query_generator USING GIN(tags);53CREATE INDEX idx_sql_query_generator_meta ON sql_query_generator USING GIN(metadata);54CREATE INDEX idx_sql_query_generator_ts ON sql_query_generator(created_at DESC);5556-- Auto-update timestamp57CREATE OR REPLACE FUNCTION update_ts()58RETURNS TRIGGER LANGUAGE plpgsql AS $$59BEGIN NEW.updated_at = now(); RETURN NEW; END;60$$;61CREATE TRIGGER trg_sql_query_generator_ts BEFORE UPDATE ON sql_query_generator62 FOR EACH ROW EXECUTE FUNCTION update_ts();6364ALTER TABLE sql_query_generator ENABLE ROW LEVEL SECURITY;65```6667### Configuration & Setup68```sql69# Sql Query Generator — Configuration70# Author: luo-kai (Lous Creations)7172config = {73 "name": "sql-query-generator",74 "version": "1.0.0",75 "author": "luo-kai",76 "enabled": True,77 "debug": False,78 "timeout_seconds": 30,79 "max_retries": 3,80}81```8283### Error Handling84```sql85# Robust error handling pattern86import logging87logger = logging.getLogger("sql-query-generator")8889def safe_run(func, *args, **kwargs):90 try:91 return func(*args, **kwargs)92 except Exception as e:93 logger.error(f"sql-query-generator error: {e}", exc_info=True)94 raise95```9697---9899## Best Practices100101- **Fail fast with clear errors** — raise descriptive exceptions with context102- **Log at appropriate levels** — DEBUG for dev, INFO for ops, ERROR for problems103- **Validate inputs** — never trust external data without validation104- **Use type annotations** — improves IDE support and catches bugs early105- **Handle cleanup** — use context managers and `finally` blocks106- **Test edge cases** — empty inputs, nulls, max values, concurrent access107108---109110## Common Pitfalls111112| Pitfall | Problem | Fix |113|---------|---------|-----|114| No error handling | Silent failures in production | Wrap with try/except + logging |115| Hardcoded values | Not portable across environments | Use config/env vars |116| Missing timeouts | Hangs indefinitely | Always set timeout values |117| No retry logic | Single failure = broken workflow | Add exponential backoff |118| No cleanup on exit | Resource leaks | Use context managers |119120---121122## Related Skills123124- sql-expert125- sql-query-generator-advanced126- performance-optimization127- error-handling128- testing-expert