2017-11-16 20:53:39 +00:00
|
|
|
// Copyright © 2016 Abcum Ltd
|
|
|
|
//
|
|
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
// you may not use this file except in compliance with the License.
|
|
|
|
// You may obtain a copy of the License at
|
|
|
|
//
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
//
|
|
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
// See the License for the specific language governing permissions and
|
|
|
|
// limitations under the License.
|
|
|
|
|
|
|
|
package db
|
|
|
|
|
|
|
|
import (
|
|
|
|
"errors"
|
|
|
|
"runtime"
|
|
|
|
)
|
|
|
|
|
|
|
|
type method int
|
|
|
|
|
|
|
|
const (
|
|
|
|
_SELECT method = iota
|
|
|
|
_CREATE
|
|
|
|
_UPDATE
|
|
|
|
_DELETE
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
docKeyId = "id"
|
|
|
|
docKeyOne = "0"
|
|
|
|
docKeyAll = "*"
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
ctxKeyId = "id"
|
2017-11-28 01:20:30 +00:00
|
|
|
ctxKeyNs = "ns"
|
|
|
|
ctxKeyDb = "db"
|
2017-11-16 20:53:39 +00:00
|
|
|
ctxKeyVars = "vars"
|
|
|
|
ctxKeySubs = "subs"
|
2017-12-08 14:28:55 +00:00
|
|
|
ctxKeySpec = "spec"
|
2018-02-12 21:53:48 +00:00
|
|
|
ctxKeyKeep = "keep"
|
2017-11-16 20:53:39 +00:00
|
|
|
ctxKeyAuth = "auth"
|
|
|
|
ctxKeyKind = "kind"
|
|
|
|
ctxKeyScope = "scope"
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
varKeyId = "id"
|
|
|
|
varKeyIp = "ip"
|
|
|
|
varKeyAuth = "auth"
|
2018-02-12 21:53:48 +00:00
|
|
|
varKeyKeep = "keep"
|
2017-11-16 20:53:39 +00:00
|
|
|
varKeyThis = "this"
|
|
|
|
varKeyScope = "scope"
|
|
|
|
varKeyValue = "value"
|
|
|
|
varKeyAfter = "after"
|
|
|
|
varKeyBefore = "before"
|
2017-12-20 06:53:06 +00:00
|
|
|
varKeyMethod = "method"
|
2017-11-16 20:53:39 +00:00
|
|
|
varKeyParent = "parent"
|
|
|
|
varKeyOrigin = "origin"
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
workerCount = runtime.NumCPU() * 2
|
|
|
|
queryNotExecuted = errors.New("Query not executed")
|
|
|
|
queryIdentFailed = errors.New("Found ident but no doc available")
|
|
|
|
featureNotImplemented = errors.New("Feature is not yet implemented")
|
2018-02-12 21:53:48 +00:00
|
|
|
paramSearchKeys = []string{ctxKeySpec, ctxKeySubs, ctxKeyVars, ctxKeyKeep}
|
2017-11-16 20:53:39 +00:00
|
|
|
)
|