@@ -701,179 +701,4 @@ public Extractor(SqlDriver driver)
701701 {
702702 }
703703 }
704-
705- internal partial class Extractor
706- {
707- protected virtual string GetExtractSchemasQuery ( )
708- {
709- return @"select " + Constants . DefaultSchemaName + @"from rdb$database" ;
710- }
711-
712- protected virtual string GetExtractTablesQuery ( )
713- {
714- return @"
715- select cast(null as varchar(30)) as schema
716- ,trim(rdb$relation_name) as table_name
717- ,rdb$relation_type as table_type
718- from rdb$relations
719- where rdb$relation_type in (0, 5, 4) and rdb$relation_name not starts with 'RDB$' and rdb$relation_name not starts with 'MON$'" ;
720- }
721-
722- protected virtual string GetExtractTableColumnsQuery ( )
723- {
724- return @"
725- select schema
726- ,table_name
727- ,ordinal_position
728- ,column_name
729- ,field_type
730- ,column_subtype
731- ,column_size
732- ,numeric_precision
733- ,-numeric_scale as numeric_scale
734- ,character_max_length
735- ,(1 - coalesce(column_nullable,0)) as column_nullable
736- ,column_default
737- ,relation_type
738- from (select cast(null as varchar(30)) as schema
739- ,trim(rfr.rdb$relation_name) as table_name
740- ,trim(rfr.rdb$field_name) as column_name
741- ,fld.rdb$field_sub_type as column_subtype
742- ,cast(fld.rdb$field_length as integer) as column_size
743- ,cast(fld.rdb$field_precision as integer) as numeric_precision
744- ,cast(fld.rdb$field_scale as integer) as numeric_scale
745- ,cast(fld.rdb$character_length as integer) as character_max_length
746- ,cast(fld.rdb$field_length as integer) as character_octet_length
747- ,rfr.rdb$field_position as ordinal_position
748- ,trim(rfr.rdb$field_source) as domain_name
749- ,trim(rfr.rdb$default_source) as column_default
750- ,trim(fld.rdb$computed_source) as computed_source
751- ,fld.rdb$dimensions as column_array
752- ,coalesce(fld.rdb$null_flag, rfr.rdb$null_flag) as column_nullable
753- ,0 as is_readonly
754- ,fld.rdb$field_type as field_type
755- ,trim(cs.rdb$character_set_name) as character_set_name
756- ,trim(coll.rdb$collation_name) as collation_name
757- ,trim(rfr.rdb$description) as description
758- ,cast(rr.rdb$relation_type as integer) as relation_type
759- from rdb$relations rr join rdb$relation_fields rfr on rfr.rdb$relation_name = rr.rdb$relation_name
760- left join rdb$fields fld on rfr.rdb$field_source = fld.rdb$field_name
761- left join rdb$character_sets cs
762- on cs.rdb$character_set_id = fld.rdb$character_set_id
763- left join rdb$collations coll
764- on (coll.rdb$collation_id = fld.rdb$collation_id
765- and coll.rdb$character_set_id = fld.rdb$character_set_id)
766- where rr.rdb$relation_type in (0, 4, 5) and rr.rdb$relation_name not starts with 'RDB$' and rr.rdb$relation_name not starts with 'MON$'
767- order by table_name, ordinal_position)" ;
768- }
769-
770- protected virtual string GetExtractViewsQuery ( )
771- {
772- return @"
773- select cast(null as varchar(30)) as schema
774- ,trim(rdb$relation_name) as table_name
775- ,rdb$view_source as view_source
776- from rdb$relations
777- where rdb$relation_type = 1" ;
778- }
779-
780- protected virtual string GetExtractViewColumnsQuery ( )
781- {
782- return @"
783- select cast(null as varchar(30)) as schema
784- ,trim(rfr.rdb$relation_name) as table_name
785- ,trim(rfr.rdb$field_name) as column_name
786- ,rfr.rdb$field_position as ordinal_position
787- from rdb$relations rr join rdb$relation_fields rfr on rfr.rdb$relation_name = rr.rdb$relation_name
788- where rr.rdb$relation_type = 1
789- order by rfr.rdb$relation_name, rfr.rdb$field_position" ;
790- }
791-
792- protected virtual string GetExtractIndexesQuery ( )
793- {
794- return @"
795- select cast(null as varchar(30)) as schema
796- ,trim(ri.rdb$relation_name) as table_name
797- ,trim(ri.rdb$index_name) as index_name
798- ,ri.rdb$index_id as index_seq
799- ,ri.rdb$index_type as descend
800- ,ri.rdb$unique_flag as unique_flag
801- ,trim(ris.rdb$field_name) as column_name
802- ,ris.rdb$field_position as column_position
803- ,ri.rdb$expression_source as expression_source
804- from rdb$indices ri left join rdb$index_segments ris on ris.rdb$index_name = ri.rdb$index_name
805- where ri.rdb$system_flag = 0
806- and not exists
807- (select 1
808- from rdb$relation_constraints rc
809- where rc.rdb$constraint_type in ('PRIMARY KEY', 'FOREIGN KEY')
810- and rc.rdb$relation_name = ri.rdb$relation_name
811- and rc.rdb$index_name = ri.rdb$index_name)
812- order by ri.rdb$relation_name, ri.rdb$index_id, ris.rdb$field_position" ;
813- }
814-
815- protected virtual string GetExtractForeignKeysQuery ( )
816- {
817- return @"
818- select cast(null as varchar(30)) as schema
819- ,trim(co.rdb$relation_name) as table_name
820- ,trim(co.rdb$constraint_name) as constraint_name
821- ,trim(co.rdb$deferrable) as is_deferrable
822- ,trim(co.rdb$initially_deferred) as deferred
823- ,trim(ref.rdb$delete_rule) as delete_rule
824- ,trim(coidxseg.rdb$field_name) as column_name
825- ,coidxseg.rdb$field_position as column_position
826- ,cast(null as varchar(30)) as referenced_schema
827- ,trim(refidx.rdb$relation_name) as referenced_table_name
828- ,trim(refidxseg.rdb$field_name) as referenced_column_name
829- ,trim(ref.rdb$match_option) as match_option
830- ,trim(ref.rdb$update_rule) as update_rule
831- from rdb$relation_constraints co join rdb$ref_constraints ref on co.rdb$constraint_name = ref.rdb$constraint_name
832- join rdb$indices tempidx
833- on co.rdb$index_name = tempidx.rdb$index_name
834- join rdb$index_segments coidxseg
835- on co.rdb$index_name = coidxseg.rdb$index_name
836- join rdb$relation_constraints unqc
837- on ref.rdb$const_name_uq = unqc.rdb$constraint_name and unqc.rdb$constraint_type in ('UNIQUE', 'PRIMARY KEY')
838- join rdb$indices refidx
839- on refidx.rdb$index_name = unqc.rdb$index_name and refidx.rdb$relation_name not starts with 'RDB$'
840- join rdb$index_segments refidxseg
841- on refidx.rdb$index_name = refidxseg.rdb$index_name
842- and coidxseg.rdb$field_position = refidxseg.rdb$field_position
843- where co.rdb$constraint_type = 'FOREIGN KEY'
844- order by co.rdb$relation_name, co.rdb$constraint_name, coidxseg.rdb$field_position" ;
845- }
846-
847- protected override string GetExtractUniqueAndPrimaryKeyConstraintsQuery ( )
848- {
849- return @"
850- select cast(null as varchar(30)) as schema
851- ,trim(rel.rdb$relation_name) as table_name
852- ,trim(rel.rdb$constraint_name) as constraint_name
853- ,trim(rel.rdb$constraint_type) constraint_type
854- ,trim(seg.rdb$field_name) as column_name
855- ,seg.rdb$field_position as column_position
856- from rdb$relation_constraints rel
857- left join rdb$indices idx on rel.rdb$index_name = idx.rdb$index_name
858- left join rdb$index_segments seg on idx.rdb$index_name = seg.rdb$index_name
859- where rel.rdb$constraint_type in ('PRIMARY KEY', 'UNIQUE')
860- and rel.rdb$relation_name not starts with 'RDB$'
861- and rel.rdb$relation_name not starts with 'MON$'
862- order by rel.rdb$relation_name, rel.rdb$constraint_name, seg.rdb$field_position" ;
863- }
864-
865- protected virtual string GetExtractCheckConstraintsQuery ( )
866- {
867- return @"
868- select cast(null as varchar(30)) as schema
869- ,trim(chktb.rdb$relation_name) as table_name
870- ,trim(chktb.rdb$constraint_name) as constraint_name
871- ,trim(trig.rdb$trigger_source) as check_clausule
872- from rdb$relation_constraints chktb inner join rdb$check_constraints chk
873- on (chktb.rdb$constraint_name = chk.rdb$constraint_name and chktb.rdb$constraint_type = 'CHECK')
874- inner join rdb$triggers trig
875- on chk.rdb$trigger_name = trig.rdb$trigger_name and trig.rdb$trigger_type = 1
876- order by chktb.rdb$relation_name, chktb.rdb$constraint_name" ;
877- }
878- }
879704}
0 commit comments