MCPcopy Index your code
hub / github.com/bytebase/bytebase / getSequences

Function getSequences

backend/plugin/db/oracle/sync.go:1168–1212  ·  view source on GitHub ↗

getSequences gets all sequences of a database.

(txn *sql.Tx, schemaName string)

Source from the content-addressed store, hash-verified

1166
1167// getSequences gets all sequences of a database.
1168func getSequences(txn *sql.Tx, schemaName string) ([]*storepb.SequenceMetadata, error) {
1169 var sequences []*storepb.SequenceMetadata
1170
1171 // Get sequence comments
1172 sequenceCommentMap, err := getSequenceComments(txn, schemaName)
1173 if err != nil {
1174 return nil, errors.Wrapf(err, "failed to get sequence comments")
1175 }
1176
1177 query := fmt.Sprintf(`
1178 SELECT SEQUENCE_NAME FROM ALL_SEQUENCES
1179 WHERE SEQUENCE_OWNER = '%s'
1180 ORDER BY SEQUENCE_NAME`, schemaName)
1181
1182 slog.Debug("running get sequences query")
1183 rows, err := txn.Query(query)
1184 if err != nil {
1185 return nil, util.FormatErrorWithQuery(err, query)
1186 }
1187 defer rows.Close()
1188
1189 for rows.Next() {
1190 seq := &storepb.SequenceMetadata{}
1191 if err := rows.Scan(&seq.Name); err != nil {
1192 return nil, err
1193 }
1194 // Skip system-generated sequences (e.g., ISEQ$$_* for IDENTITY columns)
1195 if strings.HasPrefix(seq.Name, "ISEQ$$_") {
1196 continue
1197 }
1198 key := db.TableKey{Schema: schemaName, Table: seq.Name}
1199 if comment, ok := sequenceCommentMap[key]; ok {
1200 seq.Comment = comment
1201 }
1202 sequences = append(sequences, seq)
1203 }
1204 if err := rows.Err(); err != nil {
1205 return nil, err
1206 }
1207 if err := rows.Close(); err != nil {
1208 return nil, err
1209 }
1210
1211 return sequences, nil
1212}
1213
1214func getRoutines(txn *sql.Tx, schemaName string) ([]*storepb.FunctionMetadata, []*storepb.ProcedureMetadata, []*storepb.PackageMetadata, error) {
1215 var functions []*storepb.FunctionMetadata

Callers 1

SyncDBSchemaMethod · 0.70

Calls 7

FormatErrorWithQueryFunction · 0.92
getSequenceCommentsFunction · 0.85
DebugMethod · 0.80
ScanMethod · 0.80
QueryMethod · 0.65
CloseMethod · 0.65
NextMethod · 0.45

Tested by

no test coverage detected