xormplus 9 年 前
コミット
8bb4299b35
13 ファイル変更20 行追加151 行削除
  1. 3 103
      engineplus.go
  2. 0 4
      mssql_dialect.go
  3. 0 4
      mymysql_driver.go
  4. 0 4
      mysql_dialect.go
  5. 0 4
      mysql_driver.go
  6. 0 4
      oci8_driver.go
  7. 0 4
      odbc_driver.go
  8. 0 4
      oracle_dialect.go
  9. 11 9
      postgres_dialect.go
  10. 2 6
      pq_driver.go
  11. 0 1
      session.go
  12. 3 3
      statement.go
  13. 1 1
      xorm.go

+ 3 - 103
engineplus.go

@@ -2,8 +2,6 @@ package xorm
 
 import (
 	"encoding/json"
-
-	"github.com/Chronokeeper/anyxml"
 )
 
 func (engine *Engine) SqlMapClient(sqlTagName string, args ...interface{}) *Session {
@@ -15,8 +13,8 @@ func (engine *Engine) SqlMapClient(sqlTagName string, args ...interface{}) *Sess
 func (engine *Engine) SqlTemplateClient(sqlTagName string, args ...interface{}) *Session {
 	session := engine.NewSession()
 	session.IsAutoClose = true
-	map1:=args[0].(map[string]interface{})
-	if engine.SqlTemplate.Template[sqlTagName]==nil{
+	map1 := args[0].(map[string]interface{})
+	if engine.SqlTemplate.Template[sqlTagName] == nil {
 		return session.Sql("", &map1)
 	}
 	sql, err := engine.SqlTemplate.Template[sqlTagName].Execute(map1)
@@ -49,104 +47,6 @@ func (engine *Engine) QueryAllByMap(sql string, paramMap interface{}) (resultsSl
 	return session.queryAllByMap(sql, paramMap)
 }
 
-func (engine *Engine) QueryAllByMapToJsonString(sql string, paramMap interface{}) (string, error) {
-	session := engine.NewSession()
-	defer session.Close()
-	results, err := session.queryAllByMap(sql, paramMap)
-	if err != nil {
-		return "", err
-	}
-	return JSONString(results, true)
-}
-
-func (engine *Engine) QueryAllByMapToJsonStringWithDateFormat(dateFormat string, sql string, paramMap interface{}) (string, error) {
-	session := engine.NewSession()
-	defer session.Close()
-	results, err := session.queryAllByMapWithDateFormat(dateFormat, sql, paramMap)
-	if err != nil {
-		return "", err
-	}
-	return JSONString(results, true)
-}
-
-func (engine *Engine) QueryAllToJsonString(sql string, paramStr ...interface{}) (string, error) {
-	session := engine.NewSession()
-	defer session.Close()
-	results, err := session.queryAll(sql, paramStr...)
-	if err != nil {
-		return "", err
-	}
-	return JSONString(results, true)
-}
-
-func (engine *Engine) QueryAllToJsonStringWithDateFormat(dateFormat string, sql string, paramStr ...interface{}) (string, error) {
-	session := engine.NewSession()
-	defer session.Close()
-	results, err := session.queryAllWithDateFormat(dateFormat, sql, paramStr...)
-	if err != nil {
-		return "", err
-	}
-	return JSONString(results, true)
-}
-
-func (engine *Engine) queryAllToXmlString(sql string, paramStr ...interface{}) (string, error) {
-	session := engine.NewSession()
-	defer session.Close()
-	resultSlice, err := session.queryAll(sql, paramStr...)
-	if err != nil {
-		return "", err
-	}
-
-	results, err := anyxml.Xml(resultSlice, "result")
-	if err != nil {
-		return "", err
-	}
-	return string(results), nil
-}
-
-func (engine *Engine) queryAllToXmlIndentString(sql string, prefix string, indent string, paramStr ...interface{}) (string, error) {
-	session := engine.NewSession()
-	defer session.Close()
-	resultSlice, err := session.queryAll(sql, paramStr...)
-	if err != nil {
-		return "", err
-	}
-	results, err := anyxml.XmlIndent(resultSlice, prefix, indent, "result")
-	if err != nil {
-		return "", err
-	}
-	return string(results), nil
-}
-
-func (engine *Engine) queryAllToXmlStringWithDateFormat(dateFormat string, sql string, paramStr ...interface{}) (string, error) {
-	session := engine.NewSession()
-	defer session.Close()
-	resultSlice, err := session.queryAll(sql, paramStr...)
-	if err != nil {
-		return "", err
-	}
-	results, err := anyxml.XmlWithDateFormat(dateFormat, resultSlice)
-	if err != nil {
-		return "", err
-	}
-	return string(results), nil
-}
-
-func (engine *Engine) QueryAllToXmlIndentStringWithDateFormat(dateFormat string, sql string, prefix string, indent string, paramStr ...interface{}) (string, error) {
-	session := engine.NewSession()
-	defer session.Close()
-	resultSlice, err := session.queryAll(sql, paramStr...)
-	if err != nil {
-		return "", err
-	}
-	results, err := anyxml.XmlIndentWithDateFormat(dateFormat, resultSlice, "", "  ", "results")
-
-	if err != nil {
-		return "", err
-	}
-	return string(results), nil
-}
-
 func JSONString(v interface{}, IndentJSON bool) (string, error) {
 	var result []byte
 	var err error
@@ -159,7 +59,7 @@ func JSONString(v interface{}, IndentJSON bool) (string, error) {
 		return "", err
 	}
 
-	if string(result)=="null"{
+	if string(result) == "null" {
 		return "", nil
 	}
 	return string(result), nil

+ 0 - 4
mssql_dialect.go

@@ -13,10 +13,6 @@ import (
 	"github.com/xormplus/core"
 )
 
-// func init() {
-// 	RegisterDialect("mssql", &mssql{})
-// }
-
 var (
 	mssqlReservedWords = map[string]bool{
 		"ADD":                    true,

+ 0 - 4
mymysql_driver.go

@@ -12,10 +12,6 @@ import (
 	"github.com/xormplus/core"
 )
 
-// func init() {
-// 	core.RegisterDriver("mymysql", &mymysqlDriver{})
-// }
-
 type mymysqlDriver struct {
 }
 

+ 0 - 4
mysql_dialect.go

@@ -15,10 +15,6 @@ import (
 	"github.com/xormplus/core"
 )
 
-// func init() {
-// 	RegisterDialect("mysql", &mysql{})
-// }
-
 var (
 	mysqlReservedWords = map[string]bool{
 		"ADD":               true,

+ 0 - 4
mysql_driver.go

@@ -11,10 +11,6 @@ import (
 	"github.com/xormplus/core"
 )
 
-// func init() {
-// 	core.RegisterDriver("mysql", &mysqlDriver{})
-// }
-
 type mysqlDriver struct {
 }
 

+ 0 - 4
oci8_driver.go

@@ -11,10 +11,6 @@ import (
 	"github.com/xormplus/core"
 )
 
-// func init() {
-// 	core.RegisterDriver("oci8", &oci8Driver{})
-// }
-
 type oci8Driver struct {
 }
 

+ 0 - 4
odbc_driver.go

@@ -11,10 +11,6 @@ import (
 	"github.com/xormplus/core"
 )
 
-// func init() {
-// 	core.RegisterDriver("odbc", &odbcDriver{})
-// }
-
 type odbcDriver struct {
 }
 

+ 0 - 4
oracle_dialect.go

@@ -13,10 +13,6 @@ import (
 	"github.com/xormplus/core"
 )
 
-// func init() {
-// 	RegisterDialect("oracle", &oracle{})
-// }
-
 var (
 	oracleReservedWords = map[string]bool{
 		"ACCESS":                    true,

+ 11 - 9
postgres_dialect.go

@@ -13,9 +13,6 @@ import (
 	"github.com/xormplus/core"
 )
 
-// func init() {
-// 	RegisterDialect("postgres", &postgres{})
-// }
 // from http://www.postgresql.org/docs/current/static/sql-keywords-appendix.html
 var (
 	postgresReservedWords = map[string]bool{
@@ -913,7 +910,8 @@ func (db *postgres) IsColumnExist(tableName, colName string) (bool, error) {
 }
 
 func (db *postgres) GetColumns(tableName string) ([]string, map[string]*core.Column, error) {
-	args := []interface{}{tableName, db.URI().Schema}
+	// FIXME: the schema should be replaced by user custom's
+	args := []interface{}{tableName, "public"}
 	s := `SELECT column_name, column_default, is_nullable, data_type, character_maximum_length, numeric_precision, numeric_precision_radix ,
     CASE WHEN p.contype = 'p' THEN true ELSE false END AS primarykey,
     CASE WHEN p.contype = 'u' THEN true ELSE false END AS uniquekey
@@ -986,11 +984,13 @@ WHERE c.relkind = 'r'::char AND c.relname = $1 AND s.table_schema = $2 AND f.att
 			col.SQLType = core.SQLType{core.Bool, 0, 0}
 		case "time without time zone":
 			col.SQLType = core.SQLType{core.Time, 0, 0}
+		case "oid":
+			col.SQLType = core.SQLType{core.BigInt, 0, 0}
 		default:
 			col.SQLType = core.SQLType{strings.ToUpper(dataType), 0, 0}
 		}
 		if _, ok := core.SqlTypes[col.SQLType.Name]; !ok {
-			return nil, nil, errors.New(fmt.Sprintf("unkonw colType %v", dataType))
+			return nil, nil, errors.New(fmt.Sprintf("unknow colType: %v", dataType))
 		}
 
 		col.Length = maxLen
@@ -1012,8 +1012,9 @@ WHERE c.relkind = 'r'::char AND c.relname = $1 AND s.table_schema = $2 AND f.att
 }
 
 func (db *postgres) GetTables() ([]*core.Table, error) {
-	args := []interface{}{}
-	s := fmt.Sprintf("SELECT tablename FROM pg_tables where schemaname = '%s'", db.Uri.Schema)
+	// FIXME: replace public to user customrize schema
+	args := []interface{}{"public"}
+	s := fmt.Sprintf("SELECT tablename FROM pg_tables WHERE schemaname = $1")
 	db.LogSQL(s, args)
 
 	rows, err := db.DB().Query(s, args...)
@@ -1037,8 +1038,9 @@ func (db *postgres) GetTables() ([]*core.Table, error) {
 }
 
 func (db *postgres) GetIndexes(tableName string) (map[string]*core.Index, error) {
-	args := []interface{}{tableName}
-	s := fmt.Sprintf("SELECT indexname, indexdef FROM pg_indexes WHERE schemaname='%s' AND tablename=$1", db.URI().Schema)
+	// FIXME: replace the public schema to user specify schema
+	args := []interface{}{"public", tableName}
+	s := fmt.Sprintf("SELECT indexname, indexdef FROM pg_indexes WHERE schemaname=$1 AND tablename=$2")
 	db.LogSQL(s, args)
 
 	rows, err := db.DB().Query(s, args...)

+ 2 - 6
pq_driver.go

@@ -14,10 +14,6 @@ import (
 	"github.com/xormplus/core"
 )
 
-// func init() {
-// 	core.RegisterDriver("postgres", &pqDriver{})
-// }
-
 type pqDriver struct {
 }
 
@@ -115,9 +111,9 @@ func (p *pqDriver) Parse(driverName, dataSourceName string) (*core.Uri, error) {
 	if db.DbName == "" {
 		return nil, errors.New("dbname is empty")
 	}
-	db.Schema = o.Get("schema")
+	/*db.Schema = o.Get("schema")
 	if len(db.Schema) == 0 {
 		db.Schema = "public"
-	}
+	}*/
 	return db, nil
 }

+ 0 - 1
session.go

@@ -12,7 +12,6 @@ import (
 	"fmt"
 	"hash/crc32"
 	"reflect"
-
 	"strconv"
 	"strings"
 	"time"

+ 3 - 3
statement.go

@@ -674,10 +674,10 @@ func (statement *Statement) TableName() string {
 	}
 
 	if statement.RefTable != nil {
-		schema := statement.Engine.dialect.URI().Schema
+		/*schema := statement.Engine.dialect.URI().Schema
 		if len(schema) > 0 {
 			return schema + "." + statement.RefTable.Name
-		}
+		}*/
 		return statement.RefTable.Name
 	}
 	return ""
@@ -1009,7 +1009,7 @@ func (statement *Statement) Join(joinOP string, tablename interface{}, condition
 
 	fmt.Fprintf(&buf, " ON %v", condition)
 	statement.JoinStr = buf.String()
-	statement.joinArgs = args
+	statement.joinArgs = append(statement.joinArgs, args...)
 	return statement
 }
 

+ 1 - 1
xorm.go

@@ -16,7 +16,7 @@ import (
 )
 
 const (
-	Version string = "0.5.3.0407"
+	Version string = "0.5.4.0422"
 )
 
 func regDrvsNDialects() bool {