Updates the format of the generated go file so that it passes our format check.
Explicitly adds the generated go file into the GO_SRC in the Makefile to make the dependency relationships more clear. Adds the standard Go header to our generated Go file.
This commit is contained in:
parent
4605f381ac
commit
e35ebc4ccb
|
@ -47,9 +47,10 @@ GO_PACKAGE_OUTDIR := $(GOPATH)/pkg/$(GOPLATFORM)/$(GO_IMPORT_PATH)
|
|||
GO_PACKAGES := fdb fdb/tuple fdb/subspace fdb/directory
|
||||
GO_PACKAGE_OBJECTS := $(addprefix $(GO_PACKAGE_OUTDIR)/,$(GO_PACKAGES:=.a))
|
||||
|
||||
GO_SRC := $(shell find $(CURDIR)/bindings/go/src -name '*.go')
|
||||
GO_GEN := $(CURDIR)/bindings/go/src/fdb/generated.go
|
||||
GO_SRC := $(shell find $(CURDIR)/bindings/go/src -name '*.go') $(GO_GEN)
|
||||
|
||||
fdb_go: $(GO_PACKAGE_OBJECTS) $(GO_SRC) fdb_go_fmt_check $(CURDIR)/bindings/go/src/fdb/generated.go
|
||||
fdb_go: $(GO_PACKAGE_OBJECTS) $(GO_SRC) fdb_go_fmt_check
|
||||
|
||||
fdb_go_fmt: $(GO_SRC)
|
||||
@echo "Formatting fdb_go"
|
||||
|
@ -77,26 +78,26 @@ fdb_go_tester_clean:
|
|||
@echo "Cleaning fdb_go_tester"
|
||||
@rm -rf $(GOPATH)/bin
|
||||
|
||||
$(GOPATH)/bin/_stacktester: $(GO_DEST)/.stamp $(GO_SRC) $(GO_PACKAGE_OBJECTS) $(GO_DEST)/fdb/generated.go
|
||||
$(GOPATH)/bin/_stacktester: $(GO_DEST)/.stamp $(GO_SRC) $(GO_PACKAGE_OBJECTS)
|
||||
@echo "Compiling $(basename $(notdir $@))"
|
||||
@go install $(GO_IMPORT_PATH)/_stacktester
|
||||
|
||||
$(GO_PACKAGE_OUTDIR)/fdb/tuple.a: $(GO_DEST)/.stamp $(GO_SRC) $(GO_PACKAGE_OUTDIR)/fdb.a $(GO_DEST)/fdb/generated.go
|
||||
$(GO_PACKAGE_OUTDIR)/fdb/tuple.a: $(GO_DEST)/.stamp $(GO_SRC) $(GO_PACKAGE_OUTDIR)/fdb.a
|
||||
@echo "Compiling fdb/tuple"
|
||||
@go install $(GO_IMPORT_PATH)/fdb/tuple
|
||||
|
||||
$(GO_PACKAGE_OUTDIR)/fdb/subspace.a: $(GO_DEST)/.stamp $(GO_SRC) $(GO_PACKAGE_OUTDIR)/fdb.a $(GO_PACKAGE_OUTDIR)/fdb/tuple.a $(GO_DEST)/fdb/generated.go
|
||||
$(GO_PACKAGE_OUTDIR)/fdb/subspace.a: $(GO_DEST)/.stamp $(GO_SRC) $(GO_PACKAGE_OUTDIR)/fdb.a $(GO_PACKAGE_OUTDIR)/fdb/tuple.a
|
||||
@echo "Compiling fdb/subspace"
|
||||
@go install $(GO_IMPORT_PATH)/fdb/subspace
|
||||
|
||||
$(GO_PACKAGE_OUTDIR)/fdb/directory.a: $(GO_DEST)/.stamp $(GO_SRC) $(GO_PACKAGE_OUTDIR)/fdb.a $(GO_PACKAGE_OUTDIR)/fdb/tuple.a $(GO_PACKAGE_OUTDIR)/fdb/subspace.a $(GO_DEST)/fdb/generated.go
|
||||
$(GO_PACKAGE_OUTDIR)/fdb/directory.a: $(GO_DEST)/.stamp $(GO_SRC) $(GO_PACKAGE_OUTDIR)/fdb.a $(GO_PACKAGE_OUTDIR)/fdb/tuple.a $(GO_PACKAGE_OUTDIR)/fdb/subspace.a
|
||||
@echo "Compiling fdb/directory"
|
||||
@go install $(GO_IMPORT_PATH)/fdb/directory
|
||||
|
||||
$(GO_PACKAGE_OUTDIR)/fdb.a: $(GO_DEST)/.stamp lib/libfdb_c.$(DLEXT) $(GO_SRC) $(GO_DEST)/fdb/generated.go
|
||||
$(GO_PACKAGE_OUTDIR)/fdb.a: $(GO_DEST)/.stamp lib/libfdb_c.$(DLEXT) $(GO_SRC)
|
||||
@echo "Compiling fdb"
|
||||
@go install $(GO_IMPORT_PATH)/fdb
|
||||
|
||||
$(CURDIR)/bindings/go/src/fdb/generated.go: $(GO_DEST)/.stamp bindings/go/src/_util/translate_fdb_options.go fdbclient/vexillographer/fdb.options
|
||||
$(GO_GEN): bindings/go/src/_util/translate_fdb_options.go fdbclient/vexillographer/fdb.options
|
||||
@echo "Building $@"
|
||||
@go run bindings/go/src/_util/translate_fdb_options.go < fdbclient/vexillographer/fdb.options > $@
|
||||
|
|
|
@ -136,7 +136,7 @@ func (t Transaction) %s(key KeyConvertible, param []byte) {
|
|||
func writeEnum(scope Scope, opt Option, delta int) {
|
||||
fmt.Println()
|
||||
if opt.Description != "" {
|
||||
doc.ToText(os.Stdout, opt.Description, " // ", "", 73)
|
||||
doc.ToText(os.Stdout, opt.Description, "\t// ", "", 73)
|
||||
// fmt.Printf(" // %s\n", opt.Description)
|
||||
}
|
||||
fmt.Printf(" %s %s = %d\n", scope.Name+translateName(opt.Name), scope.Name, opt.Code+delta)
|
||||
|
@ -157,14 +157,34 @@ func main() {
|
|||
log.Fatal(err)
|
||||
}
|
||||
|
||||
fmt.Print(`// DO NOT EDIT THIS FILE BY HAND. This file was generated using
|
||||
// translate_fdb_options.go, part of the fdb-go repository, and a copy of the
|
||||
// fdb.options file (installed as part of the FoundationDB client, typically
|
||||
fmt.Print(`/*
|
||||
* generated.go
|
||||
*
|
||||
* This source file is part of the FoundationDB open source project
|
||||
*
|
||||
* Copyright 2013-2018 Apple Inc. and the FoundationDB project authors
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
// DO NOT EDIT THIS FILE BY HAND. This file was generated using
|
||||
// translate_fdb_options.go, part of the FoundationDB repository, and a copy of
|
||||
// the fdb.options file (installed as part of the FoundationDB client, typically
|
||||
// found as /usr/include/foundationdb/fdb.options).
|
||||
|
||||
// To regenerate this file, from the top level of an fdb-go repository checkout,
|
||||
// run:
|
||||
// $ go run _util/translate_fdb_options.go < /usr/include/foundationdb/fdb.options > fdb/generated.go
|
||||
// To regenerate this file, from the top level of a FoundationDB repository
|
||||
// checkout, run:
|
||||
// $ go run bindings/go/src/_util/translate_fdb_options.go < /usr/local/include/foundationdb/fdb.options > bindings/go/src/fdb/generated.go
|
||||
|
||||
package fdb
|
||||
|
||||
|
@ -216,6 +236,7 @@ func int64ToBytes(i int64) ([]byte, error) {
|
|||
|
||||
fmt.Printf(`
|
||||
type %s int
|
||||
|
||||
const (
|
||||
`, scope.Name)
|
||||
for _, opt := range scope.Option {
|
||||
|
|
|
@ -1,11 +1,31 @@
|
|||
/*
|
||||
* generated.go
|
||||
*
|
||||
* This source file is part of the FoundationDB open source project
|
||||
*
|
||||
* Copyright 2013-2018 Apple Inc. and the FoundationDB project authors
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
// DO NOT EDIT THIS FILE BY HAND. This file was generated using
|
||||
// translate_fdb_options.go, part of the fdb-go repository, and a copy of the
|
||||
// fdb.options file (installed as part of the FoundationDB client, typically
|
||||
// translate_fdb_options.go, part of the FoundationDB repository, and a copy of
|
||||
// the fdb.options file (installed as part of the FoundationDB client, typically
|
||||
// found as /usr/include/foundationdb/fdb.options).
|
||||
|
||||
// To regenerate this file, from the top level of an fdb-go repository checkout,
|
||||
// run:
|
||||
// $ go run _util/translate_fdb_options.go < /usr/include/foundationdb/fdb.options > fdb/generated.go
|
||||
// To regenerate this file, from the top level of a FoundationDB repository
|
||||
// checkout, run:
|
||||
// $ go run bindings/go/src/_util/translate_fdb_options.go < /usr/local/include/foundationdb/fdb.options > bindings/go/src/fdb/generated.go
|
||||
|
||||
package fdb
|
||||
|
||||
|
@ -144,7 +164,7 @@ func (o NetworkOptions) SetDisableMultiVersionClientApi() error {
|
|||
return o.setOpt(60, nil)
|
||||
}
|
||||
|
||||
// If set, callbacks from external client libraries can be called from threads created by the FoundationDB client library. Otherwise, callbacks will be called from either the thread used to add the callback or the network thread. Setting this option can improve performance when connected using an external client, but may not be safe to use in all environments. Must be set before setting up the network. WARNING: This feature is considered experimental at this time.
|
||||
// If set, callbacks from external client libraries can be called from threads created by the FoundationDB client library. Otherwise, callbacks will be called from either the thread used to add the callback or the network thread. Setting this option can improve performance when connected using an external client, but may not be safe to use in all environments. Must be set before setting up the network. WARNING: This feature is considered experimental at this time.
|
||||
func (o NetworkOptions) SetCallbacksOnExternalThreads() error {
|
||||
return o.setOpt(61, nil)
|
||||
}
|
||||
|
@ -370,47 +390,48 @@ func (o TransactionOptions) SetReadLockAware() error {
|
|||
}
|
||||
|
||||
type StreamingMode int
|
||||
|
||||
const (
|
||||
|
||||
// Client intends to consume the entire range and would like it all
|
||||
// transferred as early as possible.
|
||||
// Client intends to consume the entire range and would like it all
|
||||
// transferred as early as possible.
|
||||
StreamingModeWantAll StreamingMode = -1
|
||||
|
||||
// The default. The client doesn't know how much of the range it is likely
|
||||
// to used and wants different performance concerns to be balanced. Only a
|
||||
// small portion of data is transferred to the client initially (in order to
|
||||
// minimize costs if the client doesn't read the entire range), and as the
|
||||
// caller iterates over more items in the range larger batches will be
|
||||
// transferred in order to minimize latency.
|
||||
// The default. The client doesn't know how much of the range it is likely
|
||||
// to used and wants different performance concerns to be balanced. Only a
|
||||
// small portion of data is transferred to the client initially (in order to
|
||||
// minimize costs if the client doesn't read the entire range), and as the
|
||||
// caller iterates over more items in the range larger batches will be
|
||||
// transferred in order to minimize latency.
|
||||
StreamingModeIterator StreamingMode = 0
|
||||
|
||||
// Infrequently used. The client has passed a specific row limit and wants
|
||||
// that many rows delivered in a single batch. Because of iterator operation
|
||||
// in client drivers make request batches transparent to the user, consider
|
||||
// ``WANT_ALL`` StreamingMode instead. A row limit must be specified if this
|
||||
// mode is used.
|
||||
// Infrequently used. The client has passed a specific row limit and wants
|
||||
// that many rows delivered in a single batch. Because of iterator operation
|
||||
// in client drivers make request batches transparent to the user, consider
|
||||
// ``WANT_ALL`` StreamingMode instead. A row limit must be specified if this
|
||||
// mode is used.
|
||||
StreamingModeExact StreamingMode = 1
|
||||
|
||||
// Infrequently used. Transfer data in batches small enough to not be much
|
||||
// more expensive than reading individual rows, to minimize cost if
|
||||
// iteration stops early.
|
||||
// Infrequently used. Transfer data in batches small enough to not be much
|
||||
// more expensive than reading individual rows, to minimize cost if
|
||||
// iteration stops early.
|
||||
StreamingModeSmall StreamingMode = 2
|
||||
|
||||
// Infrequently used. Transfer data in batches sized in between small and
|
||||
// large.
|
||||
// Infrequently used. Transfer data in batches sized in between small and
|
||||
// large.
|
||||
StreamingModeMedium StreamingMode = 3
|
||||
|
||||
// Infrequently used. Transfer data in batches large enough to be, in a
|
||||
// high-concurrency environment, nearly as efficient as possible. If the
|
||||
// client stops iteration early, some disk and network bandwidth may be
|
||||
// wasted. The batch size may still be too small to allow a single client to
|
||||
// get high throughput from the database, so if that is what you need
|
||||
// consider the SERIAL StreamingMode.
|
||||
// Infrequently used. Transfer data in batches large enough to be, in a
|
||||
// high-concurrency environment, nearly as efficient as possible. If the
|
||||
// client stops iteration early, some disk and network bandwidth may be
|
||||
// wasted. The batch size may still be too small to allow a single client to
|
||||
// get high throughput from the database, so if that is what you need
|
||||
// consider the SERIAL StreamingMode.
|
||||
StreamingModeLarge StreamingMode = 4
|
||||
|
||||
// Transfer data in batches large enough that an individual client can get
|
||||
// reasonable read bandwidth from the database. If the client stops
|
||||
// iteration early, considerable disk and network bandwidth may be wasted.
|
||||
// Transfer data in batches large enough that an individual client can get
|
||||
// reasonable read bandwidth from the database. If the client stops
|
||||
// iteration early, considerable disk and network bandwidth may be wasted.
|
||||
StreamingModeSerial StreamingMode = 5
|
||||
)
|
||||
|
||||
|
@ -465,27 +486,29 @@ func (t Transaction) ByteMax(key KeyConvertible, param []byte) {
|
|||
}
|
||||
|
||||
type conflictRangeType int
|
||||
|
||||
const (
|
||||
|
||||
// Used to add a read conflict range
|
||||
// Used to add a read conflict range
|
||||
conflictRangeTypeRead conflictRangeType = 0
|
||||
|
||||
// Used to add a write conflict range
|
||||
// Used to add a write conflict range
|
||||
conflictRangeTypeWrite conflictRangeType = 1
|
||||
)
|
||||
|
||||
type ErrorPredicate int
|
||||
|
||||
const (
|
||||
|
||||
// Returns ``true`` if the error indicates the operations in the
|
||||
// transactions should be retried because of transient error.
|
||||
// Returns ``true`` if the error indicates the operations in the
|
||||
// transactions should be retried because of transient error.
|
||||
ErrorPredicateRetryable ErrorPredicate = 50000
|
||||
|
||||
// Returns ``true`` if the error indicates the transaction may have
|
||||
// succeeded, though not in a way the system can verify.
|
||||
// Returns ``true`` if the error indicates the transaction may have
|
||||
// succeeded, though not in a way the system can verify.
|
||||
ErrorPredicateMaybeCommitted ErrorPredicate = 50001
|
||||
|
||||
// Returns ``true`` if the error indicates the transaction has not
|
||||
// committed, though in a way that can be retried.
|
||||
// Returns ``true`` if the error indicates the transaction has not
|
||||
// committed, though in a way that can be retried.
|
||||
ErrorPredicateRetryableNotCommitted ErrorPredicate = 50002
|
||||
)
|
||||
|
|
|
@ -82,7 +82,7 @@ description is not currently required but encouraged.
|
|||
<Option name="disable_multi_version_client_api" code="60"
|
||||
description="Disables the multi-version client API and instead uses the local client directly. Must be set before setting up the network." />
|
||||
<Option name="callbacks_on_external_threads" code="61"
|
||||
description="If set, callbacks from external client libraries can be called from threads created by the FoundationDB client library. Otherwise, callbacks will be called from either the thread used to add the callback or the network thread. Setting this option can improve performance when connected using an external client, but may not be safe to use in all environments. Must be set before setting up the network. WARNING: This feature is considered experimental at this time. " />
|
||||
description="If set, callbacks from external client libraries can be called from threads created by the FoundationDB client library. Otherwise, callbacks will be called from either the thread used to add the callback or the network thread. Setting this option can improve performance when connected using an external client, but may not be safe to use in all environments. Must be set before setting up the network. WARNING: This feature is considered experimental at this time." />
|
||||
<Option name="external_client_library" code="62"
|
||||
paramType="String" paramDescription="path to client library"
|
||||
description="Adds an external client library for use by the multi-version client API. Must be set before setting up the network." />
|
||||
|
|
Loading…
Reference in New Issue