Given some SQL, it finds the CREATE TABLE
instruction for the given tableName.
(this is so it can find one entry from
a file with several SQL commands. But it
may break on a complex file, so try to only
feed it simple sql files.)
From that, it pulls out the members to create a
simple struct based on it.
It's not terribly smart, so it will probably
break on complex tables.
Data types handled:
INTEGER, SMALLINT, MEDIUMINT -> D's int
TINYINT -> D's bool
BIGINT -> D's long
TEXT, VARCHAR -> D's string
FLOAT, DOUBLE -> D's double
It also reads DEFAULT values to pass to D, except for NULL.
It ignores any length restrictions.
struct StructFromCreateTable (
stringsql
stringtableName
)
Bugs
Skips all constraints
Doesn't handle nullable fields, except with strings
It only handles SQL keywords if they are all caps
This, when combined with SimpleDataObject!(),
can automatically create usable D classes from
SQL input.
Given some SQL, it finds the CREATE TABLE instruction for the given tableName. (this is so it can find one entry from a file with several SQL commands. But it may break on a complex file, so try to only feed it simple sql files.)
From that, it pulls out the members to create a simple struct based on it.
It's not terribly smart, so it will probably break on complex tables.
Data types handled: INTEGER, SMALLINT, MEDIUMINT -> D's int TINYINT -> D's bool BIGINT -> D's long TEXT, VARCHAR -> D's string FLOAT, DOUBLE -> D's double
It also reads DEFAULT values to pass to D, except for NULL. It ignores any length restrictions.