MXS-2106: Update schema generation scripts

Updated the schemas generated by the scripts. Also added a
requirements.txt for installing all of the python dependencies.
This commit is contained in:
Markus Mäkelä 2018-11-02 07:56:04 +02:00
parent 2fa37aa18a
commit a9041a74f1
No known key found for this signature in database
GPG Key ID: 72D48FCE664F7B19
3 changed files with 20 additions and 21 deletions

View File

@ -46,7 +46,7 @@ The "user" and "password" flags are required.
// Avro field
type Field struct {
Name string `json:"name"`
Type string `json:"type"`
Type []string `json:"type"`
RealType string `json:"real_type"`
Length int `json:"length"`
}
@ -81,25 +81,23 @@ func (f *Field) ToAvroType() {
switch f.Type {
case "date", "datetime", "time", "timestamp", "year", "tinytext", "text",
"mediumtext", "longtext", "char", "varchar":
f.Type = "string"
f.Type = ["null", "string"]
f.Length, _ = strconv.Atoi(length_re.ReplaceAllString(orig, "$1"))
case "enum", "set":
f.Type = "string"
f.Type = ["null", "string"]
case "tinyblob", "blob", "mediumblob", "longblob", "binary", "varbinary":
f.Type = "bytes"
f.Type = ["null", "bytes"]
case "int", "smallint", "mediumint", "integer", "tinyint", "short", "bit":
f.Type = "int"
f.Type = ["null", "int"]
case "float":
f.Type = "float"
f.Type = ["null", "float"]
case "double", "decimal":
f.Type = "double"
case "null":
f.Type = "null"
f.Type = ["null", "double"]
case "long", "bigint":
f.Type = "long"
f.Type = ["null", "long"]
default:
LogObject(f)
f.Type = "string"
f.Type = ["null", "string"]
}
}

View File

@ -43,24 +43,23 @@ def parse_field(row):
else:
res["length"] = -1
type = "string"
if name in ("date", "datetime", "time", "timestamp", "year", "tinytext", "text",
"mediumtext", "longtext", "char", "varchar", "enum", "set"):
res["type"] = "string"
type = "string"
elif name in ("tinyblob", "blob", "mediumblob", "longblob", "binary", "varbinary"):
res["type"] = "bytes"
type = "bytes"
elif name in ("int", "smallint", "mediumint", "integer", "tinyint", "short", "bit"):
res["type"] = "int"
type = "int"
elif name in ("float"):
res["type"] = "float"
type = "float"
elif name in ("double", "decimal"):
res["type"] = "double"
elif name in ("null"):
res["type"] = "null"
type = "double"
elif name in ("long", "bigint"):
res["type"] = "long"
else:
res["type"] = "string"
type = "long"
res["type"] = ["null", type]
res["name"] = row[0].lower()

View File

@ -0,0 +1,2 @@
mysql-connector-python
kafka-python