Mashdun
AI GrowthWorkCapabilitiesIntegrationsProcessLabsMarketplaceBlogAbout
Get in Touch
Mashdun

Full-stack web developer, AI engineer & growth marketer. Building production-grade apps and intelligent solutions.

Navigation

  • Portfolio
  • Capabilities
  • Process
  • Labs
  • About

Resources

  • Blog / Notes
  • Marketplace
  • Contact
  • RSS Feed

Legal

  • Terms of Service
  • Privacy Policy
  • Cookie Policy
  • Do Not Sell or Share
  • Delete my data

© 2026 Mashdun. All rights reserved.

Built with Next.js, Tailwind CSS & Prisma

    All Labs
    AI
    Schema injection
    PostgreSQL
    Read-only guard
    Explained clauses

    SQL Translator

    Schema injection plus independent verification: the sample schema goes into the prompt so the model uses real columns, and the query it returns is re-checked in the browser for mutation keywords before being marked safe to run. Each clause is explained separately so the logic can be audited rather than trusted.

    SQL Translator

    Schema injection
    PostgreSQL
    Read-only guard
    Explained clauses

    Schema the model was given

    customersid PK, name, email, company, country, plan, created_at
    subscriptionsid PK, customer_id →customers.id, plan, mrr_cents, status, started_at, canceled_at
    invoicesid PK, customer_id →customers.id, amount_cents, status, issued_at, paid_at
    ticketsid PK, customer_id →customers.id, subject, priority, status, opened_at, resolved_at
    usage_eventsid PK, customer_id →customers.id, feature, event_count, occurred_at

    How it works

    1. The schema below is injected into the prompt, so the model uses real columns instead of guessing
    2. Ask a question in plain English — you get formatted Postgres back
    3. Every generated query is re-checked in the browser for mutation keywords before it's marked safe
    4. Each clause is explained separately, so you can verify the logic rather than trusting it

    From real client work

    Two things make text-to-SQL usable in production, and neither is the model. First, inject the schema — without it you get plausible queries against columns that don't exist. Second, never trust the output: the prompt forbids writes and the result is independently re-checked for mutation keywords, because a prompt is a request, not a constraint. That belt-and-braces pattern is how we ship LLM-generated queries at all.

    See the dashboard modules