|
1 | 1 | package information
|
2 | 2 |
|
3 | 3 | import (
|
4 |
| - "context" |
5 | 4 | "fmt"
|
6 |
| - |
7 |
| - "github.com/domonda/go-sqldb/db" |
8 | 5 | )
|
9 | 6 |
|
10 | 7 | // YesNo is a bool type that implements the sql.Scanner
|
@@ -60,161 +57,3 @@ func (y *String) Scan(value any) error {
|
60 | 57 | }
|
61 | 58 | return nil
|
62 | 59 | }
|
63 |
| - |
64 |
| -type Schema struct { |
65 |
| - CatalogName String `db:"catalog_name"` |
66 |
| - SchemaName String `db:"schema_name"` |
67 |
| - SchemaOwner String `db:"schema_owner"` |
68 |
| - DefaultCharacterSetCatalog String `db:"default_character_set_catalog"` |
69 |
| - DefaultCharacterSetSchema String `db:"default_character_set_schema"` |
70 |
| - DefaultCharacterSetName String `db:"default_character_set_name"` |
71 |
| - SqlPath String `db:"sql_path"` |
72 |
| -} |
73 |
| - |
74 |
| -type Table struct { |
75 |
| - TableCatalog String `db:"table_catalog"` |
76 |
| - TableSchema String `db:"table_schema"` |
77 |
| - TableName String `db:"table_name"` |
78 |
| - TableType String `db:"table_type"` |
79 |
| - SelfReferencingColumnName String `db:"self_referencing_column_name"` |
80 |
| - ReferenceGeneration String `db:"reference_generation"` |
81 |
| - UserDefinedTypeCatalog String `db:"user_defined_type_catalog"` |
82 |
| - UserDefinedTypeSchema String `db:"user_defined_type_schema"` |
83 |
| - UserDefinedTypeName String `db:"user_defined_type_name"` |
84 |
| - IsInsertableInto YesNo `db:"is_insertable_into"` |
85 |
| - IsTyped YesNo `db:"is_typed"` |
86 |
| - CommitAction String `db:"commit_action"` |
87 |
| -} |
88 |
| - |
89 |
| -func GetTable(ctx context.Context, catalog, schema, name string) (table *Table, err error) { |
90 |
| - err = db.Conn(ctx).QueryRow( |
91 |
| - `select * |
92 |
| - from information_schema.tables |
93 |
| - where table_catalog = $1 |
94 |
| - and table_schema = $2 |
95 |
| - and table_name = $3`, |
96 |
| - catalog, |
97 |
| - schema, |
98 |
| - name, |
99 |
| - ).ScanStruct(&table) |
100 |
| - if err != nil { |
101 |
| - return nil, err |
102 |
| - } |
103 |
| - return table, nil |
104 |
| -} |
105 |
| - |
106 |
| -func GetAllTables(ctx context.Context) (tables []*Table, err error) { |
107 |
| - err = db.Conn(ctx).QueryRows( |
108 |
| - `select * from information_schema.tables`, |
109 |
| - ).ScanStructSlice(&tables) |
110 |
| - if err != nil { |
111 |
| - return nil, err |
112 |
| - } |
113 |
| - return tables, nil |
114 |
| -} |
115 |
| - |
116 |
| -type View struct { |
117 |
| - CatalogName String `db:"catalog_name"` |
118 |
| - SchemaName String `db:"schema_name"` |
119 |
| - SchemaOwner String `db:"schema_owner"` |
120 |
| - DefaultCharacterSetCatalog String `db:"default_character_set_catalog"` |
121 |
| - DefaultCharacterSetSchema String `db:"default_character_set_schema"` |
122 |
| - DefaultCharacterSetName String `db:"default_character_set_name"` |
123 |
| - SqlPath String `db:"sql_path"` |
124 |
| -} |
125 |
| - |
126 |
| -type Column struct { |
127 |
| - TableCatalog String `db:"table_catalog"` |
128 |
| - TableSchema String `db:"table_schema"` |
129 |
| - TableName String `db:"table_name"` |
130 |
| - ColumnName String `db:"column_name"` |
131 |
| - OrdinalPosition int `db:"ordinal_position"` |
132 |
| - ColumnDefault String `db:"column_default"` |
133 |
| - IsNullable YesNo `db:"is_nullable"` |
134 |
| - DataType String `db:"data_type"` |
135 |
| - CharacterMaximumLength *int `db:"character_maximum_length"` |
136 |
| - CharacterOctetLength *int `db:"character_octet_length"` |
137 |
| - NumericPrecision *int `db:"numeric_precision"` |
138 |
| - NumericPrecisionRadix *int `db:"numeric_precision_radix"` |
139 |
| - NumericScale *int `db:"numeric_scale"` |
140 |
| - DatetimePrecision *int `db:"datetime_precision"` |
141 |
| - IntervalType String `db:"interval_type"` |
142 |
| - IntervalPrecision *int `db:"interval_precision"` |
143 |
| - CharacterSetCatalog String `db:"character_set_catalog"` |
144 |
| - CharacterSetSchema String `db:"character_set_schema"` |
145 |
| - CharacterSetName String `db:"character_set_name"` |
146 |
| - CollationCatalog String `db:"collation_catalog"` |
147 |
| - CollationSchema String `db:"collation_schema"` |
148 |
| - CollationName String `db:"collation_name"` |
149 |
| - DomainCatalog String `db:"domain_catalog"` |
150 |
| - DomainSchema String `db:"domain_schema"` |
151 |
| - DomainName String `db:"domain_name"` |
152 |
| - UDTCatalog String `db:"udt_catalog"` |
153 |
| - UDTSchema String `db:"udt_schema"` |
154 |
| - UDTName String `db:"udt_name"` |
155 |
| - ScopeCatalog String `db:"scope_catalog"` |
156 |
| - ScopeSchema String `db:"scope_schema"` |
157 |
| - ScopeName String `db:"scope_name"` |
158 |
| - MaximumCardinality *int `db:"maximum_cardinality"` |
159 |
| - DTDIdentifier String `db:"dtd_identifier"` |
160 |
| - IsSelfReferencing YesNo `db:"is_self_referencing"` |
161 |
| - IsIdentity YesNo `db:"is_identity"` |
162 |
| - IdentityGeneration String `db:"identity_generation"` |
163 |
| - IdentityStart String `db:"identity_start"` |
164 |
| - IdentityIncrement String `db:"identity_increment"` |
165 |
| - IdentityMaximum String `db:"identity_maximum"` |
166 |
| - IdentityMinimum String `db:"identity_minimum"` |
167 |
| - IdentityCycle YesNo `db:"identity_cycle"` |
168 |
| - IsGenerated String `db:"is_generated"` |
169 |
| - GenerationExpression String `db:"generation_expression"` |
170 |
| - IsUpdatable YesNo `db:"is_updatable"` |
171 |
| -} |
172 |
| - |
173 |
| -type KeyColumnUsage struct { |
174 |
| - ConstraintCatalog String `db:"constraint_catalog"` |
175 |
| - ConstraintSchema String `db:"constraint_schema"` |
176 |
| - ConstraintName String `db:"constraint_name"` |
177 |
| - TableCatalog String `db:"table_catalog"` |
178 |
| - TableSchema String `db:"table_schema"` |
179 |
| - TableName String `db:"table_name"` |
180 |
| - ColumnName String `db:"column_name"` |
181 |
| - OrdinalPosition int `db:"ordinal_position"` |
182 |
| - PositionInUniqueConstraint *int `db:"position_in_unique_constraint"` |
183 |
| -} |
184 |
| - |
185 |
| -type Domains struct { |
186 |
| - DomainCatalog String `db:"domain_catalog"` |
187 |
| - DomainSchema String `db:"domain_schema"` |
188 |
| - DomainName String `db:"domain_name"` |
189 |
| - DataType String `db:"data_type"` |
190 |
| - CharacterMaximumLength *int `db:"character_maximum_length"` |
191 |
| - CharacterOctetLength *int `db:"character_octet_length"` |
192 |
| - CharacterSetCatalog String `db:"character_set_catalog"` |
193 |
| - CharacterSetSchema String `db:"character_set_schema"` |
194 |
| - CharacterSetName String `db:"character_set_name"` |
195 |
| - CollationCatalog String `db:"collation_catalog"` |
196 |
| - CollationSchema String `db:"collation_schema"` |
197 |
| - CollationName String `db:"collation_name"` |
198 |
| - NumericPrecision *int `db:"numeric_precision"` |
199 |
| - NumericPrecisionRadix *int `db:"numeric_precision_radix"` |
200 |
| - NumericScale *int `db:"numeric_scale"` |
201 |
| - DatetimePrecision *int `db:"datetime_precision"` |
202 |
| - IntervalType String `db:"interval_type"` |
203 |
| - IntervalPrecision *int `db:"interval_precision"` |
204 |
| - DomainDefault String `db:"domain_default"` |
205 |
| - UDTCatalog String `db:"udt_catalog"` |
206 |
| - UDTSchema String `db:"udt_schema"` |
207 |
| - UDTName String `db:"udt_name"` |
208 |
| - ScopeCatalog String `db:"scope_catalog"` |
209 |
| - ScopeSchema String `db:"scope_schema"` |
210 |
| - ScopeName String `db:"scope_name"` |
211 |
| - MaximumCardinality *int `db:"maximum_cardinality"` |
212 |
| - DTDIdentifier String `db:"dtd_identifier"` |
213 |
| -} |
214 |
| - |
215 |
| -type CheckConstraints struct { |
216 |
| - ConstraintCatalog String `db:"constraint_catalog"` |
217 |
| - ConstraintSchema String `db:"constraint_schema"` |
218 |
| - ConstraintName String `db:"constraint_name"` |
219 |
| - CheckClause String `db:"check_clause"` |
220 |
| -} |
0 commit comments