database

package
v0.0.0-...-9c2cc9a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2019 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package database ...

Copyright © 2019 hajime-terasawa <terako.studio@gmail.com>

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

Copyright © 2019 hajime-terasawa <terako.studio@gmail.com>

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.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DBClient

type DBClient interface {
	Select(tx *sqlx.Tx) ([]*converters.InternalRow, error)
	Delete(tx *sqlx.Tx, rows []*converters.InternalRow) error
	WithTx(f func(tx *sqlx.Tx) error) error
}

DBClient provide tx operation and query for outbox table

func BuildClient

func BuildClient() (DBClient, error)

BuildClient builds DBClient for abstraction

type MySQLClient

type MySQLClient struct {
	*sqlx.DB
}

MySQLClient implements DBClient for MySQL

func BuildMySQLClient

func BuildMySQLClient() (*MySQLClient, error)

BuildMySQLClient builds MySQL specific DBClient

func (*MySQLClient) Delete

func (c *MySQLClient) Delete(tx *sqlx.Tx, rows []*converters.InternalRow) error

Delete deletes given *sqlx.Rows' records this method is intended to be used in transaction block

func (*MySQLClient) Select

func (c *MySQLClient) Select(tx *sqlx.Tx) ([]*converters.InternalRow, error)

Select fetches batch-sized number of sorted rows from the outbox table

func (*MySQLClient) WithTx

func (c *MySQLClient) WithTx(f func(tx *sqlx.Tx) error) (err error)

WithTx provides transactional operation for given func

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL