XSQL
var Xsql = ;var x = dialect:'mysql';
var query = x x x ';';
select `tbl`.`col1`,`tbl`.`col2` from `tbl` where `tbl`.`id`=2 ;
Primitives
-
quotes
: [String
] -
wrap
: [String
,Undefined|String
] -
escape
: [String
] -
string
: [String
,Undefined|String
] -
name
: [String
,Undefined|String
,Undefined|String
] -
names
: [Array
,Undefined|String
,Undefined|String
] -
schema
: [Undefined|String
] -
as
: [String
,String
] -
alias
: [String
,String
] -
func
: [String
,String|Array
,Undefined|String
] -
select
: [String|Array
] -
from
: [String
] -
join
: [String
,String|Array
,Undefined|String
] -
eq
: [String
,String|Number|Null
] -
eqv
: [String
,Undefined|Null|String|Number|Boolean
] -
groupby
: [String|Array
] -
orderby
: [String|Object|Array
,Undefined|String
] -
limit
: [Number
,Number
] -
in
: [String|Number|Array
] -
and
: [String|Array
] -
or
: [String|Array
] -
between
: [String|Number
,String|Number
] -
like
: [String
] -
where
: [String|Array
,Undefined|String
] -
insert
: [String
,String|Array
,String|Array
] -
update
: [String
,String|Array
,String|Array
] -
delete
: [String
]
Examples
Functions
var x = dialect:'mysql'; var concat = x; var group = x; var partial = x;
group_concat(distinct concat_ws(' ',`tbl`.`col1`,`tbl`.`col2`)) as `alias`
Join Tables
var query = x x x ';';
select `tbl1`.`col`,`tbl2`.`col` from `tbl1` left join `tbl2` on `tbl1`.`id`=`tbl2`.`id` ;
PostgreSQL Schema
public by default
var x = dialect:'pg';var query = x x ';';
select "public"."tbl"."col" from "public"."tbl" ;
globally defined
var x = dialect:'pg' schema:'y';var query = x x ';';
select "y"."tbl"."col" from "y"."tbl" ;
specify schema
var x = dialect:'pg' schema:'y';var query = x x ';';
select "z"."tbl"."col" from "y"."tbl" ;
skip on other dialects
var x = dialect:'sqlite';var query = x x ';';
select "tbl"."col" from "tbl" ;
Wrapping it up
concat
{ return /mysql|pg/ ? x // sqlite : columns;}
mysql
var x = dialect:'mysql';var partial = ;
concat_ws(',',`tbl`.`col1`,`tbl`.`col2`)
sqlite
var x = dialect:'sqlite';var partial = ;
"tbl"."col1"||','||"tbl"."col2"
group
{ return /mysql|sqlite/ ? x // pg : x}
mysql
var x = dialect:'mysql';var partial = ;
group_concat(distinct `tbl`.`col1`,`tbl`.`col2`)
pg
var x = dialect:'pg';var partial = ;
string_agg(distinct "tbl"."col1","tbl"."col2",',')
License
MIT