mysql

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Dec 27, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package mysql provides functionality for parsing and generating MySQL database schemas. It implements the Parser interface for handling MySQL specific SQL syntax and schema structures.

Index

Constants

This section is empty.

Variables

View Source
var (
	// MySQLToPostgreSQL MySQL'den PostgreSQL'e veri tipi dönüşümleri
	MySQLToPostgreSQL = map[string]string{
		"tinyint":    "smallint",
		"smallint":   "smallint",
		"mediumint":  "integer",
		"int":        "integer",
		"bigint":     "bigint",
		"float":      "real",
		"double":     "double precision",
		"decimal":    "decimal",
		"char":       "char",
		"varchar":    "varchar",
		"tinytext":   "text",
		"text":       "text",
		"mediumtext": "text",
		"longtext":   "text",
		"json":       "jsonb",
		"datetime":   "timestamp",
		"timestamp":  "timestamp",
		"date":       "date",
		"time":       "time",
		"blob":       "bytea",
		"tinyblob":   "bytea",
		"mediumblob": "bytea",
		"longblob":   "bytea",
		"enum":       "text",
		"set":        "text[]",
		"bool":       "boolean",
		"boolean":    "boolean",
	}

	// MySQLToSQLServer MySQL'den SQL Server'a veri tipi dönüşümleri
	MySQLToSQLServer = map[string]string{
		"tinyint":    "tinyint",
		"smallint":   "smallint",
		"mediumint":  "int",
		"int":        "int",
		"bigint":     "bigint",
		"float":      "float",
		"double":     "float",
		"decimal":    "decimal",
		"char":       "char",
		"varchar":    "varchar",
		"tinytext":   "varchar(max)",
		"text":       "varchar(max)",
		"mediumtext": "varchar(max)",
		"longtext":   "varchar(max)",
		"json":       "nvarchar(max)",
		"datetime":   "datetime2",
		"timestamp":  "datetime2",
		"date":       "date",
		"time":       "time",
		"blob":       "varbinary(max)",
		"tinyblob":   "varbinary(max)",
		"mediumblob": "varbinary(max)",
		"longblob":   "varbinary(max)",
		"enum":       "varchar(255)",
		"set":        "varchar(max)",
		"bool":       "bit",
		"boolean":    "bit",
	}

	// MySQLToOracle MySQL'den Oracle'a veri tipi dönüşümleri
	MySQLToOracle = map[string]string{
		"tinyint":    "NUMBER(3)",
		"smallint":   "NUMBER(5)",
		"mediumint":  "NUMBER(7)",
		"int":        "NUMBER(10)",
		"bigint":     "NUMBER(19)",
		"float":      "FLOAT",
		"double":     "FLOAT",
		"decimal":    "NUMBER",
		"char":       "CHAR",
		"varchar":    "VARCHAR2",
		"tinytext":   "CLOB",
		"text":       "CLOB",
		"mediumtext": "CLOB",
		"longtext":   "CLOB",
		"json":       "CLOB",
		"datetime":   "TIMESTAMP",
		"timestamp":  "TIMESTAMP",
		"date":       "DATE",
		"time":       "TIMESTAMP",
		"blob":       "BLOB",
		"tinyblob":   "BLOB",
		"mediumblob": "BLOB",
		"longblob":   "BLOB",
		"enum":       "VARCHAR2(255)",
		"set":        "VARCHAR2(4000)",
		"bool":       "NUMBER(1)",
		"boolean":    "NUMBER(1)",
	}

	// MySQLToSQLite MySQL'den SQLite'a veri tipi dönüşümleri
	MySQLToSQLite = map[string]string{
		"tinyint":    "INTEGER",
		"smallint":   "INTEGER",
		"mediumint":  "INTEGER",
		"int":        "INTEGER",
		"bigint":     "INTEGER",
		"float":      "REAL",
		"double":     "REAL",
		"decimal":    "REAL",
		"char":       "TEXT",
		"varchar":    "TEXT",
		"tinytext":   "TEXT",
		"text":       "TEXT",
		"mediumtext": "TEXT",
		"longtext":   "TEXT",
		"json":       "TEXT",
		"datetime":   "TEXT",
		"timestamp":  "TEXT",
		"date":       "TEXT",
		"time":       "TEXT",
		"blob":       "BLOB",
		"tinyblob":   "BLOB",
		"mediumblob": "BLOB",
		"longblob":   "BLOB",
		"enum":       "TEXT",
		"set":        "TEXT",
		"bool":       "INTEGER",
		"boolean":    "INTEGER",
	}
)

MySQL'den diğer veritabanı tiplerine veri tipi dönüşüm haritaları

Functions

This section is empty.

Types

type MySQL

type MySQL struct {
	// contains filtered or unexported fields
}

MySQL represents a MySQL parser implementation that handles parsing and generating MySQL database schemas. It maintains an internal schema representation and provides methods for converting between MySQL SQL and the common schema format.

func NewMySQL

func NewMySQL() *MySQL

NewMySQL creates and initializes a new MySQL parser instance. It returns a parser that can handle MySQL specific SQL syntax and schema structures.

func (*MySQL) Generate

func (m *MySQL) Generate(schema *sqlmapper.Schema) (string, error)

Generate creates a MySQL SQL dump from a schema structure. It generates SQL statements for all database objects in the schema, including: - Tables with columns, indexes, and constraints - Views - Stored procedures and functions - Triggers - User privileges

Parameters:

  • schema: The schema structure to convert to MySQL SQL

Returns:

  • string: The generated MySQL SQL statements
  • error: An error if generation fails

func (*MySQL) Parse

func (m *MySQL) Parse(content string) (*sqlmapper.Schema, error)

Parse takes a MySQL SQL dump content and parses it into a common schema structure. It processes various MySQL objects including: - Databases and schemas - Tables with columns and constraints - Indexes (including PRIMARY, UNIQUE, and FULLTEXT) - Views - Stored procedures and functions - Triggers - User privileges

Parameters:

  • content: The MySQL SQL dump content to parse

Returns:

  • *sqlmapper.Schema: The parsed schema structure
  • error: An error if parsing fails

type MySQLStreamParser added in v0.5.0

type MySQLStreamParser struct {
	// contains filtered or unexported fields
}

MySQLStreamParser implements the StreamParser interface for MySQL

func NewMySQLStreamParser added in v0.5.0

func NewMySQLStreamParser() *MySQLStreamParser

NewMySQLStreamParser creates a new MySQL stream parser

func (*MySQLStreamParser) GenerateStream added in v0.5.0

func (p *MySQLStreamParser) GenerateStream(schema *sqlmapper.Schema, writer io.Writer) error

GenerateStream implements the StreamParser interface

func (*MySQLStreamParser) ParseStream added in v0.5.0

func (p *MySQLStreamParser) ParseStream(reader io.Reader, callback func(sqlmapper.SchemaObject) error) error

ParseStream implements the StreamParser interface

func (*MySQLStreamParser) ParseStreamParallel added in v0.5.0

func (p *MySQLStreamParser) ParseStreamParallel(reader io.Reader, callback func(sqlmapper.SchemaObject) error, workers int) error

ParseStreamParallel implements parallel processing for MySQL stream parsing

Jump to

Keyboard shortcuts

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