MCPcopy Index your code
hub / github.com/go-dev-frame/sponge / getSQL

Function getSQL

pkg/sql2code/sql2code.go:73–124  ·  view source on GitHub ↗
(args *Args)

Source from the content-addressed store, hash-verified

71}
72
73func getSQL(args *Args) (string, map[string]string, error) {
74 if args.SQL != "" {
75 return args.SQL, nil, nil
76 }
77
78 sql := ""
79 dbDriverName := strings.ToLower(args.DBDriver)
80 if args.DDLFile != "" {
81 if dbDriverName != parser.DBDriverMysql {
82 return sql, nil, fmt.Errorf("not support driver %s for parsing the sql file, only mysql is supported", args.DBDriver)
83 }
84 b, err := os.ReadFile(args.DDLFile)
85 if err != nil {
86 return sql, nil, fmt.Errorf("read %s failed, %s", args.DDLFile, err)
87 }
88 return string(b), nil, nil
89 } else if args.DBDsn != "" {
90 if args.DBTable == "" {
91 return sql, nil, errors.New("miss database table")
92 }
93
94 switch dbDriverName {
95 case parser.DBDriverMysql, parser.DBDriverTidb:
96 dsn := utils.AdaptiveMysqlDsn(args.DBDsn)
97 sqlStr, err := parser.GetMysqlTableInfo(dsn, args.DBTable)
98 return sqlStr, nil, err
99 case parser.DBDriverPostgresql:
100 dsn := utils.AdaptivePostgresqlDsn(args.DBDsn)
101 fields, err := parser.GetPostgresqlTableInfo(dsn, args.DBTable)
102 if err != nil {
103 return "", nil, err
104 }
105 sqlStr, pgTypeMap := parser.ConvertToSQLByPgFields(args.DBTable, fields)
106 return sqlStr, pgTypeMap, nil
107 case parser.DBDriverSqlite:
108 sqlStr, err := parser.GetSqliteTableInfo(args.DBDsn, args.DBTable)
109 return sqlStr, nil, err
110 case parser.DBDriverMongodb:
111 dsn := utils.AdaptiveMongodbDsn(args.DBDsn)
112 fields, err := parser.GetMongodbTableInfo(dsn, args.DBTable)
113 if err != nil {
114 return "", nil, err
115 }
116 sqlStr, mongoTypeMap := parser.ConvertToSQLByMgoFields(args.DBTable, fields)
117 return sqlStr, mongoTypeMap, nil
118 default:
119 return "", nil, errors.New("get sql error, unsupported database driver: " + dbDriverName)
120 }
121 }
122
123 return sql, nil, errors.New("no SQL input(-sql|-f|-db-dsn)")
124}
125
126func setOptions(args *Args) []parser.Option {
127 var opts []parser.Option

Callers 1

GenerateFunction · 0.85

Calls 11

AdaptiveMysqlDsnFunction · 0.92
GetMysqlTableInfoFunction · 0.92
AdaptivePostgresqlDsnFunction · 0.92
GetPostgresqlTableInfoFunction · 0.92
ConvertToSQLByPgFieldsFunction · 0.92
GetSqliteTableInfoFunction · 0.92
AdaptiveMongodbDsnFunction · 0.92
GetMongodbTableInfoFunction · 0.92
ConvertToSQLByMgoFieldsFunction · 0.92
ErrorfMethod · 0.80
ReadFileMethod · 0.65

Tested by

no test coverage detected