good morning!!!!

Skip to content
Snippets Groups Projects
Select Git revision
  • 120bde945b4442c53962e0487769074791b816a4
  • master default protected
  • renovate/configure
  • dependabot/go_modules/golang.org/x/crypto-0.1.0
  • dependabot/go_modules/golang.org/x/sys-0.1.0
  • dependabot/go_modules/golang.org/x/text-0.3.8
  • test-pg-json-raw-message
  • v4
  • timeouts
  • pk-pgx-hacking
  • issue-616_add-limit-to-one
  • v3
  • v3-github-actions
  • issue-607_sqlite_paginator
  • mockdb-adapter
  • v1
  • issue_508-valuer_panic
  • feature/preload
  • issue-394
  • feature/test-reconnect-with-few-connections
  • v0
  • v0.0.2
  • v0.0.1
  • v4.6.0
  • v4.6.0-rc1
  • v4.5.4
  • v4.5.3
  • v4.5.2
  • v4.5.1
  • v4.5.0
  • v4.5.0-rc3
  • v4.5.0-rc2
  • v4.5.0-rc1
  • v4.5.0-alpha.2
  • v4.5.0-alpha.1
  • v4.2.1
  • v4.2.0
  • v4.1.0
  • v3.8.0
  • v4.0.2
  • v4.0.1
41 results

test.sh

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    wrapper.go 2.35 KiB
    // Copyright (c) 2012-2014 The upper.io/db authors. All rights reserved.
    //
    // Permission is hereby granted, free of charge, to any person obtaining
    // a copy of this software and associated documentation files (the
    // "Software"), to deal in the Software without restriction, including
    // without limitation the rights to use, copy, modify, merge, publish,
    // distribute, sublicense, and/or sell copies of the Software, and to
    // permit persons to whom the Software is furnished to do so, subject to
    // the following conditions:
    //
    // The above copyright notice and this permission notice shall be
    // included in all copies or substantial portions of the Software.
    //
    // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
    // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
    // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    
    package db
    
    import (
    	"fmt"
    	"reflect"
    )
    
    // This map holds a copy of all registered adapters.
    var wrappers = make(map[string]Database)
    
    // Register associates an adapter's name with a type. Panics if the adapter
    // name is empty or the adapter is nil.
    func Register(name string, adapter Database) {
    
    	if name == `` {
    		panic(`Missing adapter name.`)
    	}
    
    	if _, ok := wrappers[name]; ok != false {
    		panic(`db.Register() called twice for adapter: ` + name)
    	}
    
    	wrappers[name] = adapter
    }
    
    // Open configures a database session using the given adapter's name and the
    // provided settings.
    func Open(adapter string, conn ConnectionURL) (Database, error) {
    
    	driver, ok := wrappers[adapter]
    
    	if ok == false {
    		// Using panic instead of returning error because attemping to use an
    		// adapter that does not exists will never result in success.
    		panic(fmt.Sprintf(`Open: Unknown adapter %s. (see: https://upper.io/db#database-adapters)`, adapter))
    	}
    
    	// Creating a new connection everytime Open() is called.
    	driverType := reflect.ValueOf(driver).Elem().Type()
    	newAdapter := reflect.New(driverType).Interface().(Database)
    
    	// Setting up the connection.
    	if err := newAdapter.Setup(conn); err != nil {
    		return nil, err
    	}
    
    	return newAdapter, nil
    }