Skip to content

Commit 68b9b37

Browse files
committed
Remove deprecated features
Some features marked as "Deprecated" were removed: Global TimeoutLimit variable; MustParseConsistency() function; New() method for typeInfo{} interface; View field for the KeyspaceMetadata structure; patch by Oleksandr Luzhniy; reviewed by João Reis, James Hartig, for CASSGO-12
1 parent 109a892 commit 68b9b37

File tree

6 files changed

+26
-151
lines changed

6 files changed

+26
-151
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1212

1313
- Don't restrict server authenticator unless PasswordAuthentictor.AllowedAuthenticators is provided (CASSGO-19)
1414

15+
- Cleanup of deprecated elements (CASSGO-12)
16+
1517
- Remove global NewBatch function (CASSGO-15)
1618

1719
### Fixed

cassandra_test.go

Lines changed: 1 addition & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ import (
4545
"time"
4646
"unicode"
4747

48-
inf "gopkg.in/inf.v0"
48+
"gopkg.in/inf.v0"
4949
)
5050

5151
func TestEmptyHosts(t *testing.T) {
@@ -2273,45 +2273,6 @@ func TestGetColumnMetadata(t *testing.T) {
22732273
}
22742274
}
22752275

2276-
func TestViewMetadata(t *testing.T) {
2277-
session := createSession(t)
2278-
defer session.Close()
2279-
createViews(t, session)
2280-
2281-
views, err := getViewsMetadata(session, "gocql_test")
2282-
if err != nil {
2283-
t.Fatalf("failed to query view metadata with err: %v", err)
2284-
}
2285-
if views == nil {
2286-
t.Fatal("failed to query view metadata, nil returned")
2287-
}
2288-
2289-
if len(views) != 1 {
2290-
t.Fatal("expected one view")
2291-
}
2292-
2293-
textType := TypeText
2294-
if flagCassVersion.Before(3, 0, 0) {
2295-
textType = TypeVarchar
2296-
}
2297-
2298-
expectedView := ViewMetadata{
2299-
Keyspace: "gocql_test",
2300-
Name: "basicview",
2301-
FieldNames: []string{"birthday", "nationality", "weight", "height"},
2302-
FieldTypes: []TypeInfo{
2303-
NativeType{typ: TypeTimestamp},
2304-
NativeType{typ: textType},
2305-
NativeType{typ: textType},
2306-
NativeType{typ: textType},
2307-
},
2308-
}
2309-
2310-
if !reflect.DeepEqual(views[0], expectedView) {
2311-
t.Fatalf("view is %+v, but expected %+v", views[0], expectedView)
2312-
}
2313-
}
2314-
23152276
func TestMaterializedViewMetadata(t *testing.T) {
23162277
if flagCassVersion.Before(3, 0, 0) {
23172278
return
@@ -2594,11 +2555,6 @@ func TestKeyspaceMetadata(t *testing.T) {
25942555
if aggregate.StateFunc.Name != "avgstate" {
25952556
t.Fatalf("expected state function %s, but got %s", "avgstate", aggregate.StateFunc.Name)
25962557
}
2597-
2598-
_, found = keyspaceMetadata.Views["basicview"]
2599-
if !found {
2600-
t.Fatal("failed to find the view in metadata")
2601-
}
26022558
_, found = keyspaceMetadata.UserTypes["basicview"]
26032559
if !found {
26042560
t.Fatal("failed to find the types in metadata")

conn.go

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -166,14 +166,6 @@ func (fn connErrorHandlerFn) HandleError(conn *Conn, err error, closed bool) {
166166
fn(conn, err, closed)
167167
}
168168

169-
// If not zero, how many timeouts we will allow to occur before the connection is closed
170-
// and restarted. This is to prevent a single query timeout from killing a connection
171-
// which may be serving more queries just fine.
172-
// Default is 0, should not be changed concurrently with queries.
173-
//
174-
// Deprecated.
175-
var TimeoutLimit int64 = 0
176-
177169
// Conn is a single connection to a Cassandra node. It can be used to execute
178170
// queries, but users are usually advised to use a more reliable, higher
179171
// level API.
@@ -764,7 +756,7 @@ func (c *Conn) releaseStream(call *callReq) {
764756
}
765757

766758
func (c *Conn) handleTimeout() {
767-
if TimeoutLimit > 0 && atomic.AddInt64(&c.timeouts, 1) > TimeoutLimit {
759+
if atomic.AddInt64(&c.timeouts, 1) > 0 {
768760
c.closeWithError(ErrTooManyTimeouts)
769761
}
770762
}

frame.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -275,17 +275,6 @@ func ParseConsistencyWrapper(s string) (consistency Consistency, err error) {
275275
return
276276
}
277277

278-
// MustParseConsistency is the same as ParseConsistency except it returns
279-
// an error (never). It is kept here since breaking changes are not good.
280-
// DEPRECATED: use ParseConsistency if you want a panic on parse error.
281-
func MustParseConsistency(s string) (Consistency, error) {
282-
c, err := ParseConsistencyWrapper(s)
283-
if err != nil {
284-
panic(err)
285-
}
286-
return c, nil
287-
}
288-
289278
type SerialConsistency uint16
290279

291280
const (

marshal.go

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2455,14 +2455,6 @@ type TypeInfo interface {
24552455
Version() byte
24562456
Custom() string
24572457

2458-
// New creates a pointer to an empty version of whatever type
2459-
// is referenced by the TypeInfo receiver.
2460-
//
2461-
// If there is no corresponding Go type for the CQL type, New panics.
2462-
//
2463-
// Deprecated: Use NewWithError instead.
2464-
New() interface{}
2465-
24662458
// NewWithError creates a pointer to an empty version of whatever type
24672459
// is referenced by the TypeInfo receiver.
24682460
//
@@ -2488,14 +2480,6 @@ func (t NativeType) NewWithError() (interface{}, error) {
24882480
return reflect.New(typ).Interface(), nil
24892481
}
24902482

2491-
func (t NativeType) New() interface{} {
2492-
val, err := t.NewWithError()
2493-
if err != nil {
2494-
panic(err.Error())
2495-
}
2496-
return val
2497-
}
2498-
24992483
func (s NativeType) Type() Type {
25002484
return s.typ
25012485
}
@@ -2531,14 +2515,6 @@ func (t CollectionType) NewWithError() (interface{}, error) {
25312515
return reflect.New(typ).Interface(), nil
25322516
}
25332517

2534-
func (t CollectionType) New() interface{} {
2535-
val, err := t.NewWithError()
2536-
if err != nil {
2537-
panic(err.Error())
2538-
}
2539-
return val
2540-
}
2541-
25422518
func (c CollectionType) String() string {
25432519
switch c.typ {
25442520
case TypeMap:
@@ -2576,14 +2552,6 @@ func (t TupleTypeInfo) NewWithError() (interface{}, error) {
25762552
return reflect.New(typ).Interface(), nil
25772553
}
25782554

2579-
func (t TupleTypeInfo) New() interface{} {
2580-
val, err := t.NewWithError()
2581-
if err != nil {
2582-
panic(err.Error())
2583-
}
2584-
return val
2585-
}
2586-
25872555
type UDTField struct {
25882556
Name string
25892557
Type TypeInfo
@@ -2604,14 +2572,6 @@ func (u UDTTypeInfo) NewWithError() (interface{}, error) {
26042572
return reflect.New(typ).Interface(), nil
26052573
}
26062574

2607-
func (u UDTTypeInfo) New() interface{} {
2608-
val, err := u.NewWithError()
2609-
if err != nil {
2610-
panic(err.Error())
2611-
}
2612-
return val
2613-
}
2614-
26152575
func (u UDTTypeInfo) String() string {
26162576
buf := &bytes.Buffer{}
26172577

metadata.go

Lines changed: 22 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,13 @@ import (
3939

4040
// schema metadata for a keyspace
4141
type KeyspaceMetadata struct {
42-
Name string
43-
DurableWrites bool
44-
StrategyClass string
45-
StrategyOptions map[string]interface{}
46-
Tables map[string]*TableMetadata
47-
Functions map[string]*FunctionMetadata
48-
Aggregates map[string]*AggregateMetadata
49-
// Deprecated: use the MaterializedViews field for views and UserTypes field for udts instead.
50-
Views map[string]*ViewMetadata
42+
Name string
43+
DurableWrites bool
44+
StrategyClass string
45+
StrategyOptions map[string]interface{}
46+
Tables map[string]*TableMetadata
47+
Functions map[string]*FunctionMetadata
48+
Aggregates map[string]*AggregateMetadata
5149
MaterializedViews map[string]*MaterializedViewMetadata
5250
UserTypes map[string]*UserTypeMetadata
5351
}
@@ -109,15 +107,6 @@ type AggregateMetadata struct {
109107
finalFunc string
110108
}
111109

112-
// ViewMetadata holds the metadata for views.
113-
// Deprecated: this is kept for backwards compatibility issues. Use MaterializedViewMetadata.
114-
type ViewMetadata struct {
115-
Keyspace string
116-
Name string
117-
FieldNames []string
118-
FieldTypes []TypeInfo
119-
}
120-
121110
// MaterializedViewMetadata holds the metadata for materialized views.
122111
type MaterializedViewMetadata struct {
123112
Keyspace string
@@ -304,7 +293,7 @@ func (s *schemaDescriber) refreshSchema(keyspaceName string) error {
304293
if err != nil {
305294
return err
306295
}
307-
views, err := getViewsMetadata(s.session, keyspaceName)
296+
userTypes, err := getUserTypeMetadata(s.session, keyspaceName)
308297
if err != nil {
309298
return err
310299
}
@@ -314,7 +303,7 @@ func (s *schemaDescriber) refreshSchema(keyspaceName string) error {
314303
}
315304

316305
// organize the schema data
317-
compileMetadata(s.session.cfg.ProtoVersion, keyspace, tables, columns, functions, aggregates, views,
306+
compileMetadata(s.session.cfg.ProtoVersion, keyspace, tables, columns, functions, aggregates, userTypes,
318307
materializedViews, s.session.logger)
319308

320309
// update the cache
@@ -335,7 +324,7 @@ func compileMetadata(
335324
columns []ColumnMetadata,
336325
functions []FunctionMetadata,
337326
aggregates []AggregateMetadata,
338-
views []ViewMetadata,
327+
uTypes []UserTypeMetadata,
339328
materializedViews []MaterializedViewMetadata,
340329
logger StdLogger,
341330
) {
@@ -355,22 +344,9 @@ func compileMetadata(
355344
aggregates[i].StateFunc = *keyspace.Functions[aggregates[i].stateFunc]
356345
keyspace.Aggregates[aggregates[i].Name] = &aggregates[i]
357346
}
358-
keyspace.Views = make(map[string]*ViewMetadata, len(views))
359-
for i := range views {
360-
keyspace.Views[views[i].Name] = &views[i]
361-
}
362-
// Views currently holds the types and hasn't been deleted for backward compatibility issues.
363-
// That's why it's ok to copy Views into Types in this case. For the real Views use MaterializedViews.
364-
types := make([]UserTypeMetadata, len(views))
365-
for i := range views {
366-
types[i].Keyspace = views[i].Keyspace
367-
types[i].Name = views[i].Name
368-
types[i].FieldNames = views[i].FieldNames
369-
types[i].FieldTypes = views[i].FieldTypes
370-
}
371-
keyspace.UserTypes = make(map[string]*UserTypeMetadata, len(views))
372-
for i := range types {
373-
keyspace.UserTypes[types[i].Name] = &types[i]
347+
keyspace.UserTypes = make(map[string]*UserTypeMetadata, len(uTypes))
348+
for i := range uTypes {
349+
keyspace.UserTypes[uTypes[i].Name] = &uTypes[i]
374350
}
375351
keyspace.MaterializedViews = make(map[string]*MaterializedViewMetadata, len(materializedViews))
376352
for i, _ := range materializedViews {
@@ -954,7 +930,7 @@ func getTypeInfo(t string, logger StdLogger) TypeInfo {
954930
return getCassandraType(t, logger)
955931
}
956932

957-
func getViewsMetadata(session *Session, keyspaceName string) ([]ViewMetadata, error) {
933+
func getUserTypeMetadata(session *Session, keyspaceName string) ([]UserTypeMetadata, error) {
958934
if session.cfg.ProtoVersion == protoVersion1 {
959935
return nil, nil
960936
}
@@ -972,31 +948,31 @@ func getViewsMetadata(session *Session, keyspaceName string) ([]ViewMetadata, er
972948
FROM %s
973949
WHERE keyspace_name = ?`, tableName)
974950

975-
var views []ViewMetadata
951+
var uTypes []UserTypeMetadata
976952

977953
rows := session.control.query(stmt, keyspaceName).Scanner()
978954
for rows.Next() {
979-
view := ViewMetadata{Keyspace: keyspaceName}
955+
uType := UserTypeMetadata{Keyspace: keyspaceName}
980956
var argumentTypes []string
981-
err := rows.Scan(&view.Name,
982-
&view.FieldNames,
957+
err := rows.Scan(&uType.Name,
958+
&uType.FieldNames,
983959
&argumentTypes,
984960
)
985961
if err != nil {
986962
return nil, err
987963
}
988-
view.FieldTypes = make([]TypeInfo, len(argumentTypes))
964+
uType.FieldTypes = make([]TypeInfo, len(argumentTypes))
989965
for i, argumentType := range argumentTypes {
990-
view.FieldTypes[i] = getTypeInfo(argumentType, session.logger)
966+
uType.FieldTypes[i] = getTypeInfo(argumentType, session.logger)
991967
}
992-
views = append(views, view)
968+
uTypes = append(uTypes, uType)
993969
}
994970

995971
if err := rows.Err(); err != nil {
996972
return nil, err
997973
}
998974

999-
return views, nil
975+
return uTypes, nil
1000976
}
1001977

1002978
func getMaterializedViewsMetadata(session *Session, keyspaceName string) ([]MaterializedViewMetadata, error) {

0 commit comments

Comments
 (0)