All Projects → isaksky → Fssqldom

isaksky / Fssqldom

Licence: mit
Library for SQL parsing, AST manipulation and SQL generation in F#

Programming Languages

fsharp
127 projects

Projects that are alternatives of or similar to Fssqldom

Unist
Universal Syntax Tree used by @unifiedjs
Stars: ✭ 438 (+873.33%)
Mutual labels:  syntax-tree
Rezoom.sql
Statically typechecks a common SQL dialect and translates it to various RDBMS backends
Stars: ✭ 621 (+1280%)
Mutual labels:  sqlserver
Spreplicator
♻ Replicates SharePoint Lists
Stars: ✭ 22 (-51.11%)
Mutual labels:  sqlserver
Monitor Table Change With Sqltabledependency
Get SQL Server notification on record table change
Stars: ✭ 459 (+920%)
Mutual labels:  sqlserver
Typeorm
ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
Stars: ✭ 26,559 (+58920%)
Mutual labels:  sqlserver
Zxw.framework.netcore
基于EF Core的Code First模式的DotNetCore快速开发框架,其中包括DBContext、IOC组件autofac和AspectCore.Injector、代码生成器(也支持DB First)、基于AspectCore的memcache和Redis缓存组件,以及基于ICanPay的支付库和一些日常用的方法和扩展,比如批量插入、更新、删除以及触发器支持,当然还有demo。欢迎提交各种建议、意见和pr~
Stars: ✭ 691 (+1435.56%)
Mutual labels:  sqlserver
Microorm.dapper.repositories
CRUD for Dapper
Stars: ✭ 424 (+842.22%)
Mutual labels:  sqlserver
Pyetl
python ETL framework
Stars: ✭ 33 (-26.67%)
Mutual labels:  sqlserver
Sp whoisactive
sp_whoisactive
Stars: ✭ 566 (+1157.78%)
Mutual labels:  sqlserver
Ezsql
PHP class to make interacting with a database ridiculusly easy
Stars: ✭ 804 (+1686.67%)
Mutual labels:  sqlserver
Jooq
jOOQ is the best way to write SQL in Java
Stars: ✭ 4,695 (+10333.33%)
Mutual labels:  sqlserver
Mdast
Markdown Abstract Syntax Tree format
Stars: ✭ 493 (+995.56%)
Mutual labels:  syntax-tree
Nopcommerce
The most popular open-source eCommerce shopping cart solution based on ASP.NET Core
Stars: ✭ 6,827 (+15071.11%)
Mutual labels:  sqlserver
Symmetric Ds
SymmetricDS is a database and file synchronization solution that is platform-independent, web-enabled, and database agnostic. SymmetricDS was built to make data replication across two to tens of thousands of databases and file systems fast, easy and resilient. We specialize in near real time, bi-directional data replication across large node networks over the WAN or LAN.
Stars: ✭ 450 (+900%)
Mutual labels:  sqlserver
Metric Parser
📜 AST-based advanced mathematical parser written by Typescript.
Stars: ✭ 26 (-42.22%)
Mutual labels:  syntax-tree
Antdata.orm
特色:vs插件或者t4一键生成entity 支持配置非物理外键。分离linq转sql引擎(原生linq非扩展)和执行dal功能,支持异步,支持netcore2.0
Stars: ✭ 428 (+851.11%)
Mutual labels:  sqlserver
Sqlinjectionwiki
A wiki focusing on aggregating and documenting various SQL injection methods
Stars: ✭ 623 (+1284.44%)
Mutual labels:  sqlserver
Tigertoolbox
Toolbox repository for Tiger team
Stars: ✭ 1,003 (+2128.89%)
Mutual labels:  sqlserver
Tbls
tbls is a CI-Friendly tool for document a database, written in Go.
Stars: ✭ 940 (+1988.89%)
Mutual labels:  sqlserver
Smartsql
SmartSql = MyBatis in C# + .NET Core+ Cache(Memory | Redis) + R/W Splitting + PropertyChangedTrack +Dynamic Repository + InvokeSync + Diagnostics
Stars: ✭ 775 (+1622.22%)
Mutual labels:  sqlserver

FsSqlDom

A library to work with SQL syntax trees in F#. Can be used for:

  • Analyzing queries
    • Finding performance problems
    • Checking permissions
  • Rewriting queries
    • Optimize poorly written queries
    • Add/remove conditions to WHERE clause for security, etc
  • Generating scripts from modified SQL syntax trees

It covers 100% of TSQL, because it leverages the existing TransactSql.ScriptDom C# library from Microsoft, and is able to convert losslessly* back and forth between Microsofts C# type hierarchy, and a new set of discriminated unions in F#.

* Stream token positions excluded

Check out the intro blog post for an example of the first two. For script generation, you could check out the tests

Installation

Install from nuget:

Install-Package FsSqlDom

Gallery WPF App

The main output of this project is a class library, but it also has a windows application with some examples and tools to help use the library (and the C# library from Microsoft).

Features:

  • Basic usage
  • Syntax Builder (similar to Roslyn Quoter
  • Table Relationships vizualizer (based on analysing AST of views, procedures, and functions)

Screenshots:

UI

Syntax Builder

Design questions

  • Q: Why generate only discriminated unions (DUs) with many fields, instead of DUs with a single record value?
    • A: In this case, it would result it way too many types, which creates a compiler (and tooling) performance problem.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].