diff --git a/ql/collection.go b/ql/collection.go index fa5f25929636d0427dbec188f0ed6a7739ed27da..5e37d72f67cd745ec84e6a474a9610511f7edf55 100644 --- a/ql/collection.go +++ b/ql/collection.go @@ -33,10 +33,10 @@ import ( const defaultOperator = `==` -type Table struct { +type table struct { sqlutil.T columnTypes map[string]reflect.Kind - source *Source + source *source names []string } @@ -174,10 +174,10 @@ func conditionValues(cond db.Cond) (columnValues sqlgen.ColumnValues, args []int return columnValues, args } -func (self *Table) Find(terms ...interface{}) db.Result { +func (self *table) Find(terms ...interface{}) db.Result { where, arguments := whereValues(terms) - result := &Result{ + result := &result{ table: self, where: where, arguments: arguments, @@ -186,7 +186,7 @@ func (self *Table) Find(terms ...interface{}) db.Result { return result } -func (self *Table) tableN(i int) string { +func (self *table) tableN(i int) string { if len(self.names) > i { chunks := strings.SplitN(self.names[i], " ", 2) if len(chunks) > 0 { @@ -197,7 +197,7 @@ func (self *Table) tableN(i int) string { } // Deletes all the rows within the collection. -func (self *Table) Truncate() error { +func (self *table) Truncate() error { _, err := self.source.doExec(sqlgen.Statement{ Type: sqlgen.SqlTruncate, @@ -212,7 +212,7 @@ func (self *Table) Truncate() error { } // Appends an item (map or struct) into the collection. -func (self *Table) Append(item interface{}) (interface{}, error) { +func (self *table) Append(item interface{}) (interface{}, error) { cols, vals, err := self.FieldValues(item, toInternal) @@ -250,14 +250,14 @@ func (self *Table) Append(item interface{}) (interface{}, error) { } // Returns true if the collection exists. -func (self *Table) Exists() bool { +func (self *table) Exists() bool { if err := self.source.tableExists(self.names...); err != nil { return false } return true } -func (self *Table) Name() string { +func (self *table) Name() string { return strings.Join(self.names, `, `) } diff --git a/ql/database.go b/ql/database.go index b2e2f36b7ae5efd34a75c1da2990b984af54aa9d..27e7da7d7b995407a82d2cd893948c6a4cc97c56 100644 --- a/ql/database.go +++ b/ql/database.go @@ -52,7 +52,7 @@ var ( sqlPlaceholder = sqlgen.Value{sqlgen.Raw{`?`}} ) -type Source struct { +type source struct { config db.Settings session *sql.DB collections map[string]db.Collection @@ -110,10 +110,10 @@ func init() { qlSelectCountLayout, } - db.Register(Adapter, &Source{}) + db.Register(Adapter, &source{}) } -func (self *Source) doExec(stmt sqlgen.Statement, args ...interface{}) (sql.Result, error) { +func (self *source) doExec(stmt sqlgen.Statement, args ...interface{}) (sql.Result, error) { var query string var res sql.Result @@ -155,7 +155,7 @@ func (self *Source) doExec(stmt sqlgen.Statement, args ...interface{}) (sql.Resu return res, err } -func (self *Source) doQuery(stmt sqlgen.Statement, args ...interface{}) (*sql.Rows, error) { +func (self *source) doQuery(stmt sqlgen.Statement, args ...interface{}) (*sql.Rows, error) { var rows *sql.Rows var query string var err error @@ -196,7 +196,7 @@ func (self *Source) doQuery(stmt sqlgen.Statement, args ...interface{}) (*sql.Ro return rows, err } -func (self *Source) doQueryRow(stmt sqlgen.Statement, args ...interface{}) (*sql.Row, error) { +func (self *source) doQueryRow(stmt sqlgen.Statement, args ...interface{}) (*sql.Row, error) { var query string var row *sql.Row var err error @@ -238,18 +238,18 @@ func (self *Source) doQueryRow(stmt sqlgen.Statement, args ...interface{}) (*sql } // Returns the string name of the database. -func (self *Source) Name() string { +func (self *source) Name() string { return self.config.Database } // Ping verifies a connection to the database is still alive, // establishing a connection if necessary. -func (self *Source) Ping() error { +func (self *source) Ping() error { return self.session.Ping() } -func (self *Source) clone() (*Source, error) { - src := &Source{} +func (self *source) clone() (*source, error) { + src := &source{} src.Setup(self.config) if err := src.Open(); err != nil { @@ -259,16 +259,16 @@ func (self *Source) clone() (*Source, error) { return src, nil } -func (self *Source) Clone() (db.Database, error) { +func (self *source) Clone() (db.Database, error) { return self.clone() } -func (self *Source) Transaction() (db.Tx, error) { +func (self *source) Transaction() (db.Tx, error) { // We still have some issues with QL, transactions and blocking. return nil, db.ErrUnsupported /* var err error - var clone *Source + var clone *source var sqlTx *sql.Tx if clone, err = self.clone(); err != nil { @@ -288,19 +288,19 @@ func (self *Source) Transaction() (db.Tx, error) { } // Stores database settings. -func (self *Source) Setup(config db.Settings) error { +func (self *source) Setup(config db.Settings) error { self.config = config self.collections = make(map[string]db.Collection) return self.Open() } // Returns the underlying *sql.DB instance. -func (self *Source) Driver() interface{} { +func (self *source) Driver() interface{} { return self.session } // Attempts to connect to a database using the stored settings. -func (self *Source) Open() error { +func (self *source) Open() error { var err error if self.config.Database == "" { @@ -317,7 +317,7 @@ func (self *Source) Open() error { } // Closes the current database session. -func (self *Source) Close() error { +func (self *source) Close() error { if self.session != nil { return self.session.Close() } @@ -325,13 +325,13 @@ func (self *Source) Close() error { } // Changes the active database. -func (self *Source) Use(database string) error { +func (self *source) Use(database string) error { self.config.Database = database return self.Open() } // Drops the currently active database. -func (self *Source) Drop() error { +func (self *source) Drop() error { _, err := self.doQuery(sqlgen.Statement{ Type: sqlgen.SqlDropDatabase, @@ -342,7 +342,7 @@ func (self *Source) Drop() error { } // Returns a list of all tables within the currently active database. -func (self *Source) Collections() ([]string, error) { +func (self *source) Collections() ([]string, error) { var collections []string var collection string @@ -368,7 +368,7 @@ func (self *Source) Collections() ([]string, error) { return collections, nil } -func (self *Source) tableExists(names ...string) error { +func (self *source) tableExists(names ...string) error { for _, name := range names { rows, err := self.doQuery(sqlgen.Statement{ @@ -397,13 +397,13 @@ func (self *Source) tableExists(names ...string) error { } // Returns a collection instance by name. -func (self *Source) Collection(names ...string) (db.Collection, error) { +func (self *source) Collection(names ...string) (db.Collection, error) { if len(names) == 0 { return nil, db.ErrMissingCollectionName } - col := &Table{ + col := &table{ source: self, names: names, } diff --git a/ql/result.go b/ql/result.go index af437661f81a96ddeeb5e450f02f31c5d9a6cc30..7d78a11f1d8c4114798c763357413cd70b69d05f 100644 --- a/ql/result.go +++ b/ql/result.go @@ -35,8 +35,8 @@ type counter_t struct { Total uint64 `db:"total"` } -type Result struct { - table *Table +type result struct { + table *table cursor *sql.Rows // This is the main query cursor. It starts as a nil value. limit sqlgen.Limit offset sqlgen.Offset @@ -47,7 +47,7 @@ type Result struct { } // Executes a SELECT statement that can feed Next(), All() or One(). -func (self *Result) setCursor() error { +func (self *result) setCursor() error { var err error // We need a cursor, if the cursor does not exists yet then we create one. if self.cursor == nil { @@ -64,20 +64,20 @@ func (self *Result) setCursor() error { } // Sets conditions for reducing the working set. -func (self *Result) Where(terms ...interface{}) db.Result { +func (self *result) Where(terms ...interface{}) db.Result { self.where, self.arguments = whereValues(terms) return self } // Determines the maximum limit of results to be returned. -func (self *Result) Limit(n uint) db.Result { +func (self *result) Limit(n uint) db.Result { self.limit = sqlgen.Limit(n) return self } // Determines how many documents will be skipped before starting to grab // results. -func (self *Result) Skip(n uint) db.Result { +func (self *result) Skip(n uint) db.Result { self.offset = sqlgen.Offset(n) return self } @@ -85,7 +85,7 @@ func (self *Result) Skip(n uint) db.Result { // Determines sorting of results according to the provided names. Fields may be // prefixed by - (minus) which means descending order, ascending order would be // used otherwise. -func (self *Result) Sort(fields ...string) db.Result { +func (self *result) Sort(fields ...string) db.Result { sortColumns := make(sqlgen.SortColumns, 0, len(fields)) @@ -115,7 +115,7 @@ func (self *Result) Sort(fields ...string) db.Result { } // Retrieves only the given fields. -func (self *Result) Select(fields ...interface{}) db.Result { +func (self *result) Select(fields ...interface{}) db.Result { self.columns = make(sqlgen.Columns, 0, len(fields)) l := len(fields) @@ -132,7 +132,7 @@ func (self *Result) Select(fields ...interface{}) db.Result { } // Dumps all results into a pointer to an slice of structs or maps. -func (self *Result) All(dst interface{}) error { +func (self *result) All(dst interface{}) error { var err error if self.cursor != nil { @@ -155,7 +155,7 @@ func (self *Result) All(dst interface{}) error { } // Fetches only one result from the resultset. -func (self *Result) One(dst interface{}) error { +func (self *result) One(dst interface{}) error { var err error if self.cursor != nil { @@ -170,7 +170,7 @@ func (self *Result) One(dst interface{}) error { } // Fetches the next result from the resultset. -func (self *Result) Next(dst interface{}) error { +func (self *result) Next(dst interface{}) error { var err error @@ -192,7 +192,7 @@ func (self *Result) Next(dst interface{}) error { } // Removes the matching items from the collection. -func (self *Result) Remove() error { +func (self *result) Remove() error { var err error _, err = self.table.source.doExec(sqlgen.Statement{ Type: sqlgen.SqlDelete, @@ -205,7 +205,7 @@ func (self *Result) Remove() error { // Updates matching items from the collection with values of the given map or // struct. -func (self *Result) Update(values interface{}) error { +func (self *result) Update(values interface{}) error { ff, vv, err := self.table.FieldValues(values, toInternal) @@ -230,7 +230,7 @@ func (self *Result) Update(values interface{}) error { } // Closes the result set. -func (self *Result) Close() error { +func (self *result) Close() error { var err error if self.cursor != nil { err = self.cursor.Close() @@ -240,7 +240,7 @@ func (self *Result) Close() error { } // Counts matching elements. -func (self *Result) Count() (uint64, error) { +func (self *result) Count() (uint64, error) { rows, err := self.table.source.doQuery(sqlgen.Statement{ Type: sqlgen.SqlSelectCount, diff --git a/ql/tx.go b/ql/tx.go index 3c6b5bedcde5f7c28ca80ff616ee3e9ce627852a..7237d2ecf997ad6d42553a6718a037f629114da7 100644 --- a/ql/tx.go +++ b/ql/tx.go @@ -21,14 +21,14 @@ package ql -type Tx struct { - *Source +type tx struct { + *source } -func (self *Tx) Commit() error { - return self.Source.tx.Commit() +func (self *tx) Commit() error { + return self.source.tx.Commit() } -func (self *Tx) Rollback() error { - return self.Source.tx.Rollback() +func (self *tx) Rollback() error { + return self.source.tx.Rollback() } diff --git a/ql/util.go b/ql/util.go index f567757450d775049d5aa7eeb69cf8525bdf77fe..6d54f46eef0b40260236ccf2813518999ef7e7e5 100644 --- a/ql/util.go +++ b/ql/util.go @@ -41,14 +41,14 @@ func getRowColumns(rows *sql.Rows) ([]string, error) { } // Column names to lower case. - for i, _ := range columns { + for i := range columns { columns[i] = strings.ToLower(columns[i]) } return columns, nil } -func (self *Table) fetchRow(rows *sql.Rows, dst interface{}) error { +func (self *table) fetchRow(rows *sql.Rows, dst interface{}) error { var err error dstv := reflect.ValueOf(dst) @@ -85,7 +85,7 @@ func (self *Table) fetchRow(rows *sql.Rows, dst interface{}) error { return nil } -func (self *Table) fetchResult(item_t reflect.Type, rows *sql.Rows, columns []string) (item reflect.Value, err error) { +func (self *table) fetchResult(item_t reflect.Type, rows *sql.Rows, columns []string) (item reflect.Value, err error) { expecting := len(columns) scanArgs := make([]interface{}, expecting) @@ -113,7 +113,7 @@ func (self *Table) fetchResult(item_t reflect.Type, rows *sql.Rows, columns []st } case reflect.Map: values := make([]*sql.RawBytes, len(columns)) - for i, _ := range columns { + for i := range columns { scanArgs[i] = &values[i] } err = rows.Scan(scanArgs...) @@ -146,7 +146,7 @@ func (self *Table) fetchResult(item_t reflect.Type, rows *sql.Rows, columns []st return item, nil } -func (self *Table) fetchRows(rows *sql.Rows, dst interface{}) error { +func (self *table) fetchRows(rows *sql.Rows, dst interface{}) error { var err error // Destination.