All Projects → david-pfx → Andl

david-pfx / Andl

Andl is A New Database Language

Programming Languages

csharp
926 projects
language
365 projects

Projects that are alternatives of or similar to Andl

Selda
A type-safe, high-level SQL library for Haskell
Stars: ✭ 435 (+512.68%)
Mutual labels:  sql, postgresql, sqlite
Beekeeper Studio
Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.
Stars: ✭ 8,053 (+11242.25%)
Mutual labels:  sql, postgresql, sqlite
Beam
A type-safe, non-TH Haskell SQL library and ORM
Stars: ✭ 454 (+539.44%)
Mutual labels:  sql, postgresql, sqlite
Sqlx
🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, SQLite, and MSSQL.
Stars: ✭ 5,039 (+6997.18%)
Mutual labels:  sql, postgresql, sqlite
Vscode Sqltools
Database management for VSCode
Stars: ✭ 741 (+943.66%)
Mutual labels:  sql, postgresql, sqlite
Dbeaver
Free universal database tool and SQL client
Stars: ✭ 23,752 (+33353.52%)
Mutual labels:  sql, postgresql, sqlite
Go Sqlbuilder
A flexible and powerful SQL string builder library plus a zero-config ORM.
Stars: ✭ 539 (+659.15%)
Mutual labels:  sql, postgresql, sqlite
Db
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Stars: ✭ 2,832 (+3888.73%)
Mutual labels:  sql, postgresql, sqlite
Sequelize
An easy-to-use and promise-based multi SQL dialects ORM tool for Node.js
Stars: ✭ 25,422 (+35705.63%)
Mutual labels:  sql, postgresql, sqlite
Sqlancer
Detecting Logic Bugs in DBMS
Stars: ✭ 672 (+846.48%)
Mutual labels:  sql, postgresql, sqlite
Xo
Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server
Stars: ✭ 2,974 (+4088.73%)
Mutual labels:  sql, postgresql, sqlite
Eosio sql plugin
EOSIO sql database plugin
Stars: ✭ 21 (-70.42%)
Mutual labels:  sql, postgresql, sqlite
E Commerce Db
Database schema for e-commerce (webstores) sites.
Stars: ✭ 245 (+245.07%)
Mutual labels:  sql, postgresql, sqlite
Walkable
A Clojure(script) SQL library for building APIs: Datomic® (GraphQL-ish) pull syntax, data driven configuration, dynamic filtering with relations in mind
Stars: ✭ 384 (+440.85%)
Mutual labels:  sql, postgresql, sqlite
Sequelize Auto Migrations
Migration generator && runner for sequelize
Stars: ✭ 233 (+228.17%)
Mutual labels:  sql, postgresql, sqlite
Evolve
Database migration tool for .NET and .NET Core projects. Inspired by Flyway.
Stars: ✭ 477 (+571.83%)
Mutual labels:  sql, postgresql, sqlite
Nut
Advanced, Powerful and easy to use ORM for Qt
Stars: ✭ 181 (+154.93%)
Mutual labels:  sql, postgresql, sqlite
Heidisql
A lightweight client for managing MariaDB, MySQL, SQL Server, PostgreSQL and SQLite, written in Delphi
Stars: ✭ 2,864 (+3933.8%)
Mutual labels:  sql, postgresql, sqlite
Rezoom.sql
Statically typechecks a common SQL dialect and translates it to various RDBMS backends
Stars: ✭ 621 (+774.65%)
Mutual labels:  sql, postgresql, sqlite
Smartsql
SmartSql = MyBatis in C# + .NET Core+ Cache(Memory | Redis) + R/W Splitting + PropertyChangedTrack +Dynamic Repository + InvokeSync + Diagnostics
Stars: ✭ 775 (+991.55%)
Mutual labels:  sql, postgresql, sqlite

Andl is A New Database Language. See http://andl.org.

Andl is a New Database Language designed to replace SQL and then go beyond.

Andl is a full programming language with an advanced type system; it is relationally complete and has higher order queries; and it has platform independent interfacing. So Andl does two things well: perform advanced relational queries and build an application data model.

First, Andl can perform relational queries at or beyond the capabilities of any SQL dialect. It can do all the ordinary things like select, where and join but it can also do generative queries, self-joins, complex aggregations, subtotals and running totals (a bit like SQL recursive common table expressions and windowing).

And Andl can provide a complete application backend for any kind of user interface on any platform. It can easily be used to program a data model as a set of tables just like SQL, but including all the access routines, updating logic and interfaces. These can be accessed on any platform: mobile, desktop, web or cloud. The user interface can be written in any popular language or technology, such as Java, Dot Net, JavaScript and using any available communications method.

Andl has its own in-memory database and a persistence mechanism for simple tasks and experimentation. It can also use a relational database backend, with Sqlite and now Postgres in the latest release.

Sample programs are included to demonstrate these capabilities.

FIRST DO THIS

Grab the binary release and unzip it somewhere.

Go to the Sample folder in a command prompt and run the following commands. C>runsamples.bat -- set up the sample databases, compile and run programs C>runwb.bat -- run the workbench (next section)

If you like to use the command line, then try these: C>run /? -- view the command line arguments C>run -- run test.andl, a tiny script C>run sample1.andl C>run sample2.andl C>run sample3.andl C>run sample4.andl C>run sample5.andl C>run sample6.andl

The default program is 'test.andl' and the default catalog is 'db'.

Andl reads program source code, compiles and executes the program and then stores compiled operators, types and global variables in a catalog, where they can be used by other programs. In the Workbench you can see the contents of the catalog.

Here are the sample programs. sample1.andl -- scalar expressions sample2.andl -- basic relational expressions sample3.andl -- advanced relational expresions sample4.andl -- more complex examples sample5.andl -- ordering and grouping (like SQL Window) sample6.andl -- subtyping (work in progress)

Also take a look at: DbixCdSample.andl -- converted SQL sample family_tree.andl -- self-join using functions SPPsample1.andl -- more converted SQL recursive.andl -- self-joins using while (like SQL CTE recursive) 100doors.andl -- the 100 doors puzzle 99bottles.andl -- the 99 bottles lyrics fibonacci.andl -- 100 fibonacci numbers - fast! mandelbrot.andl -- mandelbrot set using while sudoku-orig.andl -- sudoku solver using while chinook.andl -- popular relational database of songs (SQL only)

You can run all the samples like this. runsamples runsamples sql -- uses Sqlite runsamples pg -- requires a default installation of Postgres

WORKBENCH

The Workbench is an interactive program to view a database amd its catalog, and to execute queries.

  1. Choose a database and see the relations and contents of its catalog. Choose Workbench.
  2. The Andl program 'workbench.andl' is loaded by default. Press F5 to run it.
  3. Press F7 to reload the catalog and F5 to run it again.
  4. Or try Ctrt+N for a new program and Ctrl+F7 for a new catalog.

Function keys

F5 to run the current program in its entirety.
Select text and F5 to run part of a program as a query.
F7 to reload the catalog (you get errors if you try to define something twice).
Ctrl+F7 to load a new empty catalog.

SQLITE

Each of the samples can be run using Sqlite, as shown. All relations are stored in Sqlite as native tables. Apart from performance and two unimplemented features, the behaviour is identical. If you like, you can use the sqlite3.exe program to verify that this is so.

C>sqlite3.exe <name>.sqandl ".dump"

THRIFT

Thrift is a platform-agnostic interface and remote procedure call technology. More details at http://thrift.apache.org/.

Andl has a built-in capability to generate Thrift interfaces, and the Andl.Thrift project is a Thrift server. The ThriftTest folder contains samples for the Thrift implementation.

ThriftTest contains a client-server sample based on Apache Thrift. Run it like this: cd ThriftTest run-thrift.bat run-thrift.bat sql -- Sqlite

ThriftSupplierPart contains another client-server sample based on Apache Thrift. Run it like this: cd ThriftSupplierPart run-thriftsp.bat run-thriftsp.bat sql -- Sqlite

TEST SUITE

Test contains the test suite. Run them like this: cd Test runsuite.bat runsuite.bat sql -- Sqlite runsuite.bat pg -- requires a default installation of Postgres

HOST

Andl.Host is a server for a native Web API and a REPL interface based on WCF. When run it is self-testing. It also contains a mini-website that is a REPL client, which should be launced in a local browser. Run it like this: cd Host run-host.bat run-host.bat sql -- Sqlite

SERVER

Andl.Server is a server for a JSON and REST Web API based on ASP.NET MVC. When run it launches a browser to show sample programs.

For JSON and REST Web API the backend is Andl and the client is a JavaScript Single Page Application. The amount of code to produce a working application is small.

The REPL page is not yet working.

BUILDING ANDL

The source code can be downloaded from https://github.com/davidandl/Andl.

The project should build 'out of the box' in Visual Studio 2015 with the .NET Framework 4.5, and possibly earlier versions. It builds an executable program that compiles and runs Andl programs, and several other components.

The batch file build-rls.bat clones the repository and builds using MSBUILD.

LICENCE

This version of Andl is free for any kind of experimental use, especially helping to make it better. For now, the licence does not grant rights for distribution or commercial use. That will have to wait until I can choose the right licence, which depends a lot on who might want to use it.

Andl is built using a variety of components including Sqlite, Newtonsoft Json, Pegasus, Avalon Edit, Thrift, Jquery, Knockout. The reader is referred to those products for relevant licence terms.

Please contact me with any questions or suggestions at [email protected].

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].