Bigtop::Backend::SQL::DB2 - backend to generate sql for DB2 database creation
If your bigtop file looks like this:
config {
SQL DB2 {}
}
app App::Name {
}
and there are table and/or sequence blocks in the app block, this module will
make docs/schema.db2 (relative to the build_dir) when you type:
bigtop app.bigtop SQL
or
bigtop app.bigtop all
You can feed that file directly to any DB2 command interpreter, once you have
created a database (and schema if needed).
This is a Bigtop backend which generates SQL DB2 can understand.
This module defines no keywords. Look in Bigtop::SQL for a list of the keywords
you can use in table and sequence blocks.
Note that while DB2 supports sequences, this module does not. Using them is
likely to be fatal (at least to your generated SQL).
This module does provide a couple of bits of shorthand (some aren't so short)
for the arguments of the is field statement.
field id {
is int4, primary_key, auto;
}
This translates into:
id INTEGER PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1, NO CACHE)
You can also type 'assign_by_sequence' instead of 'auto'. That might aid
understanding, if you can type it correctly.
Note that using 'primary_key' instead of the literal 'PRIMARY KEY' is important.
It tells the SQL and the Model back ends that this is the primary key,
allowing foreign keys to use REFERENCES and many other nice effects.
To keep podcoverage tests happy.
- backend_block_keywords
- Tells tentmaker that I understand these config section backend block
keywords:
no_gen
template
- what_do_you_make
- Tells tentmaker what this module makes. Summary: docs/schema.db2.
- gen_SQL
- Called by Bigtop::Parser to get me to do my thing.
- setup_template
- Called by Bigtop::Parser so the user can substitute an alternate template
for the hard coded one here.
Phil Crow <crow.phil@gmail.com>
Copyright (C) 2009 by Phil Crow
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself, either Perl version 5.8.6 or, at your option,
any later version of Perl 5 you may have available.