Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
f37d867e32 | |||
5e75cc7b83 | |||
d4dca86267 | |||
76340ab008 |
@ -64,7 +64,7 @@ func Filter(w *bytes.Buffer, b []byte, keys []string) error {
|
|||||||
state = expectKeyClose
|
state = expectKeyClose
|
||||||
s = i
|
s = i
|
||||||
|
|
||||||
case state == expectKeyClose && b[i] == '"':
|
case state == expectKeyClose && (b[i-1] != '\\' && b[i] == '"'):
|
||||||
state = expectColon
|
state = expectColon
|
||||||
k = b[(s + 1):i]
|
k = b[(s + 1):i]
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ func Filter(w *bytes.Buffer, b []byte, keys []string) error {
|
|||||||
case state == expectValue && b[i] == '"':
|
case state == expectValue && b[i] == '"':
|
||||||
state = expectString
|
state = expectString
|
||||||
|
|
||||||
case state == expectString && b[i] == '"':
|
case state == expectString && (b[i-1] != '\\' && b[i] == '"'):
|
||||||
e = i
|
e = i
|
||||||
|
|
||||||
case state == expectValue && b[i] == '[':
|
case state == expectValue && b[i] == '[':
|
||||||
|
@ -66,7 +66,7 @@ func Get(b []byte, keys [][]byte) []Field {
|
|||||||
state = expectKeyClose
|
state = expectKeyClose
|
||||||
s = i
|
s = i
|
||||||
|
|
||||||
case state == expectKeyClose && b[i] == '"':
|
case state == expectKeyClose && (b[i-1] != '\\' && b[i] == '"'):
|
||||||
state = expectColon
|
state = expectColon
|
||||||
k = b[(s + 1):i]
|
k = b[(s + 1):i]
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ func Get(b []byte, keys [][]byte) []Field {
|
|||||||
state = expectString
|
state = expectString
|
||||||
s = i
|
s = i
|
||||||
|
|
||||||
case state == expectString && b[i] == '"':
|
case state == expectString && (b[i-1] != '\\' && b[i] == '"'):
|
||||||
e = i
|
e = i
|
||||||
|
|
||||||
case state == expectValue && b[i] == '[':
|
case state == expectValue && b[i] == '[':
|
||||||
|
@ -13,12 +13,12 @@ var (
|
|||||||
"users": [
|
"users": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"full_name": "Sidney Stroman",
|
"full_name": "'Sidney Stroman'",
|
||||||
"email": "user0@demo.com",
|
"email": "user0@demo.com",
|
||||||
"__twitter_id": "2048666903444506956",
|
"__twitter_id": "2048666903444506956",
|
||||||
"embed": {
|
"embed": {
|
||||||
"id": 8,
|
"id": 8,
|
||||||
"full_name": "Caroll Orn Sr.",
|
"full_name": "Caroll Orn Sr's",
|
||||||
"email": "joannarau@hegmann.io",
|
"email": "joannarau@hegmann.io",
|
||||||
"__twitter_id": "ABC123"
|
"__twitter_id": "ABC123"
|
||||||
"more": [{
|
"more": [{
|
||||||
@ -37,7 +37,7 @@ var (
|
|||||||
"id": 3,
|
"id": 3,
|
||||||
"full_name": "Kenna Cassin",
|
"full_name": "Kenna Cassin",
|
||||||
"email": "user2@demo.com",
|
"email": "user2@demo.com",
|
||||||
"__twitter_id": { "name": "hello", "address": { "work": "1 infinity loop" } }
|
"__twitter_id": { "name": "\"hellos\"", "address": { "work": "1 infinity loop" } }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
"id": 4,
|
||||||
@ -171,7 +171,7 @@ func TestGet(t *testing.T) {
|
|||||||
{[]byte("__twitter_id"),
|
{[]byte("__twitter_id"),
|
||||||
[]byte(`[{ "name": "hello" }, { "name": "world"}]`)},
|
[]byte(`[{ "name": "hello" }, { "name": "world"}]`)},
|
||||||
{[]byte("__twitter_id"),
|
{[]byte("__twitter_id"),
|
||||||
[]byte(`{ "name": "hello", "address": { "work": "1 infinity loop" } }`),
|
[]byte(`{ "name": "\"hellos\"", "address": { "work": "1 infinity loop" } }`),
|
||||||
},
|
},
|
||||||
{[]byte("__twitter_id"), []byte(`1234567890`)},
|
{[]byte("__twitter_id"), []byte(`1234567890`)},
|
||||||
{[]byte("__twitter_id"), []byte(`1.23E`)},
|
{[]byte("__twitter_id"), []byte(`1.23E`)},
|
||||||
|
@ -47,7 +47,7 @@ func Keys(b []byte) [][]byte {
|
|||||||
state = expectKeyClose
|
state = expectKeyClose
|
||||||
s = i
|
s = i
|
||||||
|
|
||||||
case state == expectKeyClose && b[i] == '"':
|
case state == expectKeyClose && (b[i-1] != '\\' && b[i] == '"'):
|
||||||
state = expectColon
|
state = expectColon
|
||||||
k = b[(s + 1):i]
|
k = b[(s + 1):i]
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ func Keys(b []byte) [][]byte {
|
|||||||
state = expectString
|
state = expectString
|
||||||
s = i
|
s = i
|
||||||
|
|
||||||
case state == expectString && b[i] == '"':
|
case state == expectString && (b[i-1] != '\\' && b[i] == '"'):
|
||||||
e = i
|
e = i
|
||||||
|
|
||||||
case state == expectValue && b[i] == '{':
|
case state == expectValue && b[i] == '{':
|
||||||
|
@ -52,7 +52,7 @@ func Replace(w *bytes.Buffer, b []byte, from, to []Field) error {
|
|||||||
state = expectKeyClose
|
state = expectKeyClose
|
||||||
s = i
|
s = i
|
||||||
|
|
||||||
case state == expectKeyClose && b[i] == '"':
|
case state == expectKeyClose && (b[i-1] != '\\' && b[i] == '"'):
|
||||||
state = expectColon
|
state = expectColon
|
||||||
if _, err := h.Write(b[(s + 1):i]); err != nil {
|
if _, err := h.Write(b[(s + 1):i]); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -66,7 +66,7 @@ func Replace(w *bytes.Buffer, b []byte, from, to []Field) error {
|
|||||||
state = expectString
|
state = expectString
|
||||||
s = i
|
s = i
|
||||||
|
|
||||||
case state == expectString && b[i] == '"':
|
case state == expectString && (b[i-1] != '\\' && b[i] == '"'):
|
||||||
e = i
|
e = i
|
||||||
|
|
||||||
case state == expectValue && b[i] == '[':
|
case state == expectValue && b[i] == '[':
|
||||||
|
@ -27,7 +27,7 @@ func Strip(b []byte, path [][]byte) []byte {
|
|||||||
state = expectKeyClose
|
state = expectKeyClose
|
||||||
s = i
|
s = i
|
||||||
|
|
||||||
case state == expectKeyClose && b[i] == '"':
|
case state == expectKeyClose && (b[i-1] != '\\' && b[i] == '"'):
|
||||||
state = expectColon
|
state = expectColon
|
||||||
if pi == len(path) {
|
if pi == len(path) {
|
||||||
pi = 0
|
pi = 0
|
||||||
@ -44,7 +44,7 @@ func Strip(b []byte, path [][]byte) []byte {
|
|||||||
state = expectString
|
state = expectString
|
||||||
s = i
|
s = i
|
||||||
|
|
||||||
case state == expectString && b[i] == '"':
|
case state == expectString && (b[i-1] != '\\' && b[i] == '"'):
|
||||||
e = i
|
e = i
|
||||||
|
|
||||||
case state == expectValue && b[i] == '[':
|
case state == expectValue && b[i] == '[':
|
||||||
|
@ -932,7 +932,6 @@ func (c *compilerContext) renderNestedWhere(ex *qcode.Exp, ti *DBTableInfo) erro
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
//fmt.Println(">", ex)
|
|
||||||
io.WriteString(c.w, `)`)
|
io.WriteString(c.w, `)`)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/gobuffalo/flect"
|
"github.com/gobuffalo/flect"
|
||||||
"github.com/jackc/pgx/v4/pgxpool"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type DBSchema struct {
|
type DBSchema struct {
|
||||||
@ -51,8 +50,7 @@ type DBRel struct {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDBSchema(db *pgxpool.Pool,
|
func NewDBSchema(info *DBInfo, aliases map[string][]string) (*DBSchema, error) {
|
||||||
info *DBInfo, aliases map[string][]string) (*DBSchema, error) {
|
|
||||||
|
|
||||||
schema := &DBSchema{
|
schema := &DBSchema{
|
||||||
t: make(map[string]*DBTableInfo),
|
t: make(map[string]*DBTableInfo),
|
||||||
|
@ -34,6 +34,7 @@ func argMap(ctx context.Context, vars []byte) func(w io.Writer, tag string) (int
|
|||||||
}
|
}
|
||||||
|
|
||||||
fields := jsn.Get(vars, [][]byte{[]byte(tag)})
|
fields := jsn.Get(vars, [][]byte{[]byte(tag)})
|
||||||
|
|
||||||
if len(fields) == 0 {
|
if len(fields) == 0 {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
@ -90,8 +90,8 @@ func cmdNew(cmd *cobra.Command, args []string) {
|
|||||||
return os.Mkdir(p, os.ModePerm)
|
return os.Mkdir(p, os.ModePerm)
|
||||||
})
|
})
|
||||||
|
|
||||||
ifNotExists(path.Join(appMigrationsPath, "100_init.sql"), func(p string) error {
|
ifNotExists(path.Join(appMigrationsPath, "0_init.sql"), func(p string) error {
|
||||||
if v, err := tmpl.get("100_init.sql"); err == nil {
|
if v, err := tmpl.get("0_init.sql"); err == nil {
|
||||||
return ioutil.WriteFile(p, v, 0644)
|
return ioutil.WriteFile(p, v, 0644)
|
||||||
} else {
|
} else {
|
||||||
return err
|
return err
|
||||||
|
@ -25,7 +25,7 @@ func initCompilers(c *config) (*qcode.Compiler, *psql.Compiler, error) {
|
|||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
schema, err = psql.NewDBSchema(db, di, c.getAliasMap())
|
schema, err = psql.NewDBSchema(di, c.getAliasMap())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user