func DeletePrepared(name string) errors.Error { if !cache.peekName(name) { return errors.NewNoSuchPreparedError(name) } cache.remove(name) return nil }
func doGetPrepared(prepared_stmt value.Value, track bool) (*Prepared, errors.Error) { switch prepared_stmt.Type() { case value.STRING: prepared := cache.get(prepared_stmt, track) if prepared == nil { return nil, errors.NewNoSuchPreparedError(prepared_stmt.Actual().(string)) } return prepared, nil case value.OBJECT: name_value, has_name := prepared_stmt.Field("name") if has_name { if prepared := cache.get(name_value, track); prepared != nil { return prepared, nil } } prepared_bytes, err := prepared_stmt.MarshalJSON() if err != nil { return nil, errors.NewUnrecognizedPreparedError(err) } return unmarshalPrepared(prepared_bytes) default: return nil, errors.NewUnrecognizedPreparedError(fmt.Errorf("Invalid prepared stmt %v", prepared_stmt)) } }