Module: Mkxms::Mssql
- Defined in:
- lib/mkxms/mssql.rb,
lib/mkxms/mssql/utils.rb,
lib/mkxms/mssql/engine.rb,
lib/mkxms/mssql/version.rb,
lib/mkxms/mssql/clr_impl.rb,
lib/mkxms/mssql/keywords.rb,
lib/mkxms/mssql/exceptions.rb,
lib/mkxms/mssql/index_column.rb,
lib/mkxms/mssql/query_cursor.rb,
lib/mkxms/mssql/role_handler.rb,
lib/mkxms/mssql/view_handler.rb,
lib/mkxms/mssql/index_handler.rb,
lib/mkxms/mssql/table_handler.rb,
lib/mkxms/mssql/schema_handler.rb,
lib/mkxms/mssql/synonym_handler.rb,
lib/mkxms/mssql/clr_type_handler.rb,
lib/mkxms/mssql/database_handler.rb,
lib/mkxms/mssql/function_handler.rb,
lib/mkxms/mssql/property_handler.rb,
lib/mkxms/mssql/filegroup_handler.rb,
lib/mkxms/mssql/permission_handler.rb,
lib/mkxms/mssql/references_handler.rb,
lib/mkxms/mssql/statistics_handler.rb,
lib/mkxms/mssql/table_type_handler.rb,
lib/mkxms/mssql/dml_trigger_handler.rb,
lib/mkxms/mssql/foreign_key_handler.rb,
lib/mkxms/mssql/primary_key_handler.rb,
lib/mkxms/mssql/scalar_type_handler.rb,
lib/mkxms/mssql/clr_assembly_handler.rb,
lib/mkxms/mssql/clr_function_handler.rb,
lib/mkxms/mssql/declaratives_creator.rb,
lib/mkxms/mssql/clr_aggregate_handler.rb,
lib/mkxms/mssql/adoption_script_writer.rb,
lib/mkxms/mssql/indented_string_builder.rb,
lib/mkxms/mssql/sql_string_manipulators.rb,
lib/mkxms/mssql/access_object_definition.rb,
lib/mkxms/mssql/check_constraint_handler.rb,
lib/mkxms/mssql/stored_procedure_handler.rb,
lib/mkxms/mssql/keylike_constraint_helper.rb,
lib/mkxms/mssql/unique_constraint_handler.rb,
lib/mkxms/mssql/default_constraint_handler.rb,
lib/mkxms/mssql/clr_stored_procedure_handler.rb
Defined Under Namespace
Modules: AccessObjectDefinition, Dependencies, ExtendedProperties, Property, SqlStringManipulators, Utils
Classes: AdoptionScriptWriter, CheckConstraint, CheckConstraintHandler, ClrAggregate, ClrArggregateHandler, ClrAssembly, ClrAssemblyHandler, ClrClass, ClrFunction, ClrFunctionHandler, ClrMethod, ClrStoredProcedure, ClrStoredProcedureHandler, ClrType, ClrTypeHandler, Column, DatabaseFile, DatabaseHandler, DeclarativesCreator, Default, DefaultConstraint, DefaultConstraintHandler, DmlTriggerHandler, Engine, Filegroup, FilegroupHandler, ForeignKey, ForeignKeyHandler, Function, FunctionHandler, IndentedStringBuilder, Index, IndexHandler, KeylikeConstraint, Parameter, ParameterHandler, Permission, PermissionGroup, PermissionHandler, PrimaryKey, PrimaryKeyHandler, ProgramArgumentError, PropertyHandler, QueryCursor, Reference, ReferencesHandler, ResultType, Role, RoleHandler, ScalarType, ScalarTypeHandler, Schema, SchemaHandler, Statistics, StatisticsHandler, StoredProcedure, StoredProcedureHandler, Synonym, SynonymHandler, Table, TableHandler, TableType, TableTypeCheckConstraintHandler, TableTypeColumnHandler, TableTypeHandler, TableTypeKeyConstraintHandler, Trigger, UniqueConstraint, UniqueConstraintHandler, UnsupportedFeatureError, View, ViewHandler
Constant Summary
collapse
- VERSION =
"1.1.1"
- KEYWORDS =
%w[
ABSOLUTE
ACTION
ADA
ADD
ADMIN
AFTER
AGGREGATE
ALIAS
ALL
ALLOCATE
ALTER
AND
ANY
ARE
ARRAY
AS
ASC
ASENSITIVE
ASSERTION
ASYMMETRIC
AT
ATOMIC
AUTHORIZATION
AVG
BACKUP
BEFORE
BEGIN
BETWEEN
BINARY
BIT
BIT_LENGTH
BLOB
BOOLEAN
BOTH
BREADTH
BREAK
BROWSE
BULK
BY
CALL
CALLED
CARDINALITY
CASCADE
CASCADED
CASE
CAST
CATALOG
CHAR
CHARACTER
CHARACTER_LENGTH
CHAR_LENGTH
CHECK
CHECKPOINT
CLASS
CLOB
CLOSE
CLUSTERED
COALESCE
COLLATE
COLLATION
COLLECT
COLUMN
COMMIT
COMPLETION
COMPUTE
CONDITION
CONNECT
CONNECTION
CONSTRAINT
CONSTRAINTS
CONSTRUCTOR
CONTAINS
CONTAINSTABLE
CONTINUE
CONVERT
CORR
CORRESPONDING
COUNT
COVAR_POP
COVAR_SAMP
CREATE
CROSS
CUBE
CUME_DIST
CURRENT
CURRENT_CATALOG
CURRENT_DATE
CURRENT_DEFAULT_TRANSFORM_GROUP
CURRENT_PATH
CURRENT_ROLE
CURRENT_SCHEMA
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_TRANSFORM_GROUP_FOR_TYPE
CURRENT_USER
CURSOR
CYCLE
DATA
DATABASE
DATE
DAY
DBCC
DEALLOCATE
DEC
DECIMAL
DECLARE
DEFAULT
DEFERRABLE
DEFERRED
DELETE
DENY
DEPTH
DEREF
DESC
DESCRIBE
DESCRIPTOR
DESTROY
DESTRUCTOR
DETERMINISTIC
DIAGNOSTICS
DICTIONARY
DISCONNECT
DISK
DISTINCT
DISTRIBUTED
DOMAIN
DOUBLE
DROP
DUMP
DYNAMIC
EACH
ELEMENT
ELSE
END
END-EXEC
EQUALS
ERRLVL
ESCAPE
EVERY
EXCEPT
EXCEPTION
EXEC
EXECUTE
EXISTS
EXIT
EXTERNAL
EXTRACT
FALSE
FETCH
FILE
FILLFACTOR
FILTER
FIRST
FLOAT
FOR
FOREIGN
FORTRAN
FOUND
FREE
FREETEXT
FREETEXTTABLE
FROM
FULL
FULLTEXTTABLE
FUNCTION
FUSION
GENERAL
GET
GLOBAL
GO
GOTO
GRANT
GROUP
GROUPING
HAVING
HOLD
HOLDLOCK
HOST
HOUR
IDENTITY
IDENTITYCOL
IDENTITY_INSERT
IF
IGNORE
IMMEDIATE
IN
INCLUDE
INDEX
INDICATOR
INITIALIZE
INITIALLY
INNER
INOUT
INPUT
INSENSITIVE
INSERT
INT
INTEGER
INTERSECT
INTERSECTION
INTERVAL
INTO
IS
ISOLATION
ITERATE
JOIN
KEY
KILL
LANGUAGE
LARGE
LAST
LATERAL
LEADING
LEFT
LESS
LEVEL
LIKE
LIKE_REGEX
LIMIT
LINENO
LN
LOAD
LOCAL
LOCALTIME
LOCALTIMESTAMP
LOCATOR
LOWER
MAP
MATCH
MAX
MEMBER
MERGE
METHOD
MIN
MINUTE
MOD
MODIFIES
MODIFY
MODULE
MONTH
MULTISET
NAMES
NATIONAL
NATURAL
NCHAR
NCLOB
NEW
NEXT
NO
NOCHECK
NONCLUSTERED
NONE
NORMALIZE
NOT
NULL
NULLIF
NUMERIC
OBJECT
OCCURRENCES_REGEX
OCTET_LENGTH
OF
OFF
OFFSETS
OLD
ON
ONLY
OPEN
OPENDATASOURCE
OPENQUERY
OPENROWSET
OPENXML
OPERATION
OPTION
OR
ORDER
ORDINALITY
OUT
OUTER
OUTPUT
OVER
OVERLAPS
OVERLAY
PAD
PARAMETER
PARAMETERS
PARTIAL
PARTITION
PASCAL
PATH
PERCENT
PERCENTILE_CONT
PERCENTILE_DISC
PERCENT_RANK
PIVOT
PLAN
POSITION
POSITION_REGEX
POSTFIX
PRECISION
PREFIX
PREORDER
PREPARE
PRESERVE
PRIMARY
PRINT
PRIOR
PRIVILEGES
PROC
PROCEDURE
PUBLIC
RAISERROR
RANGE
READ
READS
READTEXT
REAL
RECONFIGURE
RECURSIVE
REF
REFERENCES
REFERENCING
REGR_AVGX
REGR_AVGY
REGR_COUNT
REGR_INTERCEPT
REGR_R2
REGR_SLOPE
REGR_SXX
REGR_SXY
REGR_SYY
RELATIVE
RELEASE
REPLICATION
RESTORE
RESTRICT
RESULT
RETURN
RETURNS
REVERT
REVOKE
RIGHT
ROLE
ROLLBACK
ROLLUP
ROUTINE
ROW
ROWCOUNT
ROWGUIDCOL
ROWS
RULE
SAVE
SAVEPOINT
SCHEMA
SCOPE
SCROLL
SEARCH
SECOND
SECTION
SECURITYAUDIT
SELECT
SEMANTICKEYPHRASETABLE
SEMANTICSIMILARITYDETAILSTABLE
SEMANTICSIMILARITYTABLE
SENSITIVE
SEQUENCE
SESSION
SESSION_USER
SET
SETS
SETUSER
SHUTDOWN
SIMILAR
SIZE
SMALLINT
SOME
SPACE
SPECIFIC
SPECIFICTYPE
SQL
SQLCA
SQLCODE
SQLERROR
SQLEXCEPTION
SQLSTATE
SQLWARNING
START
STATE
STATEMENT
STATIC
STATISTICS
STDDEV_POP
STDDEV_SAMP
STRUCTURE
SUBMULTISET
SUBSTRING
SUBSTRING_REGEX
SUM
SYMMETRIC
SYSTEM
SYSTEM_USER
TABLE
TABLESAMPLE
TEMPORARY
TERMINATE
TEXTSIZE
THAN
THEN
TIME
TIMESTAMP
TIMEZONE_HOUR
TIMEZONE_MINUTE
TO
TOP
TRAILING
TRAN
TRANSACTION
TRANSLATE
TRANSLATE_REGEX
TRANSLATION
TREAT
TRIGGER
TRIM
TRUE
TRUNCATE
TRY_CONVERT
TSEQUAL
UESCAPE
UNDER
UNION
UNIQUE
UNKNOWN
UNNEST
UNPIVOT
UPDATE
UPDATETEXT
UPPER
USAGE
USE
USER
USING
VALUE
VALUES
VARCHAR
VARIABLE
VARYING
VAR_POP
VAR_SAMP
VIEW
WAITFOR
WHEN
WHENEVER
WHERE
WHILE
WIDTH_BUCKET
WINDOW
WITH
WITHIN
WITHOUT
WORK
WRITE
WRITETEXT
XMLAGG
XMLATTRIBUTES
XMLBINARY
XMLCAST
XMLCOMMENT
XMLCONCAT
XMLDOCUMENT
XMLELEMENT
XMLEXISTS
XMLFOREST
XMLITERATE
XMLNAMESPACES
XMLPARSE
XMLPI
XMLQUERY
XMLSERIALIZE
XMLTABLE
XMLTEXT
XMLVALIDATE
YEAR
ZONE
]
- KEYWORDS_SET =
Set.new KEYWORDS
Class Method Summary
collapse
Class Method Details
.generate_declaratives_indicated(options) ⇒ Object
45
46
47
48
49
50
|
# File 'lib/mkxms/mssql.rb', line 45
def self.generate_declaratives_indicated(options)
options[:generate_declaratives].tap do |val|
return val unless val.nil?
end
return Gem::Version.new(XMigra::VERSION) >= Gem::Version.new("1.6.0")
end
|
.generate_from(document, options) ⇒ Object
35
36
37
38
39
40
41
42
43
|
# File 'lib/mkxms/mssql.rb', line 35
def self.generate_from(document, options)
db_handler = DatabaseHandler.new(**(options.to_h))
engine = Engine.new(document, db_handler)
engine.run
db_handler.create_source_files
if generate_declaratives_indicated(options)
DeclarativesCreator.new(document, options[:schema_dir]).create_artifacts
end
end
|
.parse_argv(argv = ARGV.dup) ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/mkxms/mssql.rb', line 8
def self.parse_argv(argv = ARGV.dup)
options = OpenStruct.new
optparser = OptionParser.new do |flags|
flags.banner = "Usage: #{File.basename($0)} [<option> [<option> ...]] [DB_DESCRIPTION_FILE]"
flags.separator ''
flags.separator 'Options:'
options.schema_dir = Pathname.pwd
flags.on('-o', '--outdir=SCHEMA_DIR', "Output in SCHEMA_DIR") do |schema_dir|
options.schema_dir = Pathname(schema_dir).expand_path
end
options.generate_declaratives = true
flags.on('--[no-]declaratives', "Generate declarative support files") do |v|
options.generate_declaratives = v
end
end
db_files = optparser.parse(argv)
case db_files.length
when ->(n) {n > 1}
"Too many DB_DESCRIPTION_FILEs given"
end.tap {|msg| raise ProgramArgumentError.new(msg) if msg}
return [db_files[0], options]
end
|
.run_program(argv = ARGV.dup) ⇒ Object
60
61
62
63
64
65
66
|
# File 'lib/mkxms/mssql.rb', line 60
def self.run_program(argv = ARGV.dup)
description_file, options = parse_argv(argv)
document = with_db_description_io(description_file) do |xml_file|
REXML::Document.new(xml_file)
end
generate_from(document, options)
end
|
.with_db_description_io(file_path, &blk) ⇒ Object
52
53
54
55
56
57
58
|
# File 'lib/mkxms/mssql.rb', line 52
def self.with_db_description_io(file_path, &blk)
if file_path
File.open(file_path, 'r', &blk)
else
blk.call($stdin)
end
end
|