зеркало из https://github.com/github/vitess-gh.git
seq: v3 demo updated
This commit is contained in:
Родитель
07dfac4313
Коммит
b56e9a5bc8
|
@ -15,7 +15,8 @@ import time
|
|||
from vtdb import keyrange
|
||||
from vtdb import vtgate_client
|
||||
|
||||
# implementations
|
||||
# TODO(sougou): remove this import once the deps are fixed
|
||||
import google.protobuf
|
||||
from vtdb import grpc_vtgate_client # pylint: disable=unused-import
|
||||
|
||||
|
||||
|
@ -113,6 +114,14 @@ def main():
|
|||
conn, "music1",
|
||||
"select * from music", response, keyspace="user", kr="80-")
|
||||
|
||||
# music_user_idx table
|
||||
exec_query(
|
||||
conn, "music_user_idx0",
|
||||
"select * from music_user_idx", response, keyspace="user", kr="-80")
|
||||
exec_query(
|
||||
conn, "music_user_idx1",
|
||||
"select * from music_user_idx", response, keyspace="user", kr="80-")
|
||||
|
||||
# music_extra table
|
||||
exec_query(
|
||||
conn, "music_extra0",
|
||||
|
@ -123,15 +132,14 @@ def main():
|
|||
|
||||
# lookup tables
|
||||
exec_query(
|
||||
conn, "user_idx", "select * from user_idx", response,
|
||||
conn, "user_seq", "select * from user_seq", response,
|
||||
keyspace="lookup", kr="-")
|
||||
exec_query(
|
||||
conn, "music_seq", "select * from music_seq", response,
|
||||
keyspace="lookup", kr="-")
|
||||
exec_query(
|
||||
conn, "name_user_idx", "select * from name_user_idx", response,
|
||||
keyspace="lookup", kr="-")
|
||||
exec_query(
|
||||
conn, "music_user_idx",
|
||||
"select * from music_user_idx", response,
|
||||
keyspace="lookup", kr="-")
|
||||
|
||||
print json.dumps(response)
|
||||
except Exception as e: # pylint: disable=broad-except
|
||||
|
|
|
@ -8,9 +8,8 @@ function DemoController($scope, $http) {
|
|||
|
||||
function init() {
|
||||
$scope.samples = [
|
||||
"insert into user(name) values('test1') /* run this a few times */",
|
||||
"insert into user(user_id, name) values(6, 'test2') /* app-suplied user_id */",
|
||||
"insert into user(user_id, name) values(6, null) /* error: name must be supplied */",
|
||||
"insert into user(name) values('test1') /* run this at least 6 times with different values of name */",
|
||||
"insert into user(name) values(null) /* error: name must be supplied */",
|
||||
"select user_id, name from user where user_id=6 /* unique select */",
|
||||
"select user_id, name from user where name='test1' /* non-unique select */",
|
||||
"select user_id, name from user where user_id in (1, 6) /* unique multi-select */",
|
||||
|
@ -32,7 +31,6 @@ function DemoController($scope, $http) {
|
|||
"delete from user_extra where user_id=1 /* vindexes are unchanged */",
|
||||
"",
|
||||
"insert into music(user_id) values(1) /* auto-inc on music_id */",
|
||||
"insert into music(user_id, music_id) values(1, 6) /* explicit music_id value */",
|
||||
"select user_id, music_id from music where user_id=1",
|
||||
"delete from music where music_id=6 /* one row deleted */",
|
||||
"delete from music where user_id=1 /* multiple rows deleted */",
|
||||
|
|
|
@ -45,41 +45,41 @@ license that can be found in the LICENSE file.
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<div class="col-md-3">
|
||||
<div data-ng-repeat="curResult in [result.result]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div data-ng-repeat="curResult in [result.user0]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
<div data-ng-repeat="curResult in [result.user1]"
|
||||
<div data-ng-repeat="curResult in [result.user_extra0]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
<div data-ng-repeat="curResult in [result.music0]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
<div data-ng-repeat="curResult in [result.music_extra0]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
<div data-ng-repeat="curResult in [result.music_user_idx0]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div data-ng-repeat="curResult in [result.user_extra0]"
|
||||
<div data-ng-repeat="curResult in [result.user1]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
<div data-ng-repeat="curResult in [result.user_extra1]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div data-ng-repeat="curResult in [result.music0]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
<div data-ng-repeat="curResult in [result.music1]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div data-ng-repeat="curResult in [result.music_extra0]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
<div data-ng-repeat="curResult in [result.music_extra1]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
<div data-ng-repeat="curResult in [result.music_user_idx1]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div data-ng-repeat="curResult in [result.user_idx]"
|
||||
<div data-ng-repeat="curResult in [result.user_seq]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
<div data-ng-repeat="curResult in [result.music_seq]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
<div data-ng-repeat="curResult in [result.name_user_idx]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
<div data-ng-repeat="curResult in [result.music_user_idx]"
|
||||
data-ng-include="'result.html'"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
create table user_idx(user_id bigint not null auto_increment, primary key(user_id));
|
||||
create table user_seq(id int, next_id bigint, cache bigint, increment bigint, primary key(id)) comment 'vitess_sequence';
|
||||
insert into user_seq values(0, 1, 3, 1);
|
||||
create table music_seq(id int, next_id bigint, cache bigint, increment bigint, primary key(id)) comment 'vitess_sequence';
|
||||
insert into music_seq values(0, 1, 2, 1);
|
||||
create table name_user_idx(name varchar(128), user_id bigint, primary key(name, user_id));
|
||||
create table music_user_idx(music_id bigint not null auto_increment, user_id bigint, primary key(music_id));
|
||||
|
|
|
@ -2,3 +2,4 @@ create table user(user_id bigint, name varchar(128), primary key(user_id));
|
|||
create table user_extra(user_id bigint, extra varchar(128), primary key(user_id));
|
||||
create table music(user_id bigint, music_id bigint, primary key(user_id, music_id));
|
||||
create table music_extra(music_id bigint, keyspace_id bigint unsigned, primary key(music_id));
|
||||
create table music_user_idx(music_id bigint not null auto_increment, user_id bigint, primary key(music_id));
|
||||
|
|
|
@ -3,13 +3,8 @@
|
|||
"user": {
|
||||
"Sharded": true,
|
||||
"Vindexes": {
|
||||
"user_idx": {
|
||||
"Type": "hash_autoinc",
|
||||
"Params": {
|
||||
"Table": "user_idx",
|
||||
"Column": "user_id"
|
||||
},
|
||||
"Owner": "user"
|
||||
"hash": {
|
||||
"Type": "hash"
|
||||
},
|
||||
"name_user_idx": {
|
||||
"Type": "lookup_hash",
|
||||
|
@ -21,7 +16,7 @@
|
|||
"Owner": "user"
|
||||
},
|
||||
"music_user_idx": {
|
||||
"Type": "lookup_hash_unique_autoinc",
|
||||
"Type": "lookup_hash_unique",
|
||||
"Params": {
|
||||
"Table": "music_user_idx",
|
||||
"From": "music_id",
|
||||
|
@ -38,19 +33,23 @@
|
|||
"ColVindexes": [
|
||||
{
|
||||
"Col": "user_id",
|
||||
"Name": "user_idx"
|
||||
"Name": "hash"
|
||||
},
|
||||
{
|
||||
"Col": "name",
|
||||
"Name": "name_user_idx"
|
||||
}
|
||||
]
|
||||
],
|
||||
"Autoinc": {
|
||||
"Col": "user_id",
|
||||
"Sequence": "user_seq"
|
||||
}
|
||||
},
|
||||
"user_extra": {
|
||||
"ColVindexes": [
|
||||
{
|
||||
"Col": "user_id",
|
||||
"Name": "user_idx"
|
||||
"Name": "hash"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -58,13 +57,17 @@
|
|||
"ColVindexes": [
|
||||
{
|
||||
"Col": "user_id",
|
||||
"Name": "user_idx"
|
||||
"Name": "hash"
|
||||
},
|
||||
{
|
||||
"Col": "music_id",
|
||||
"Name": "music_user_idx"
|
||||
}
|
||||
]
|
||||
],
|
||||
"Autoinc": {
|
||||
"Col": "music_id",
|
||||
"Sequence": "music_seq"
|
||||
}
|
||||
},
|
||||
"music_extra": {
|
||||
"ColVindexes": [
|
||||
|
@ -77,20 +80,34 @@
|
|||
"Name": "keyspace_idx"
|
||||
}
|
||||
]
|
||||
},
|
||||
"music_user_idx": {
|
||||
"ColVindexes": [
|
||||
{
|
||||
"Col": "music_id",
|
||||
"Name": "hash"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"Tables": {
|
||||
"user": "user",
|
||||
"user_extra": "user_extra",
|
||||
"music": "music",
|
||||
"music_extra": "music_extra"
|
||||
"music_extra": "music_extra",
|
||||
"music_user_idx": "music_user_idx"
|
||||
}
|
||||
},
|
||||
"lookup": {
|
||||
"Sharded": false,
|
||||
"Classes": {
|
||||
"seq": {
|
||||
"Type": "Sequence"
|
||||
}
|
||||
},
|
||||
"Tables": {
|
||||
"user_idx": "",
|
||||
"music_user_idx": "",
|
||||
"user_seq": "seq",
|
||||
"music_seq": "seq",
|
||||
"name_user_idx": ""
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче