Ejemplo n.º 1
0
def ensure_session():
    global testSession
    global session
    if testSession is None:
        print "Creating session...\n"

        testSession = mysqlx.get_node_session(__uripwd)

        # Ensures the user on dev-api exists
        try:
            testSession.sql(
                "create user mike@'%' identified by 's3cr3t!'").execute()
            testSession.sql(
                "grant all on *.* to mike@'%' with grant option").execute()
        except:
            pass
    else:
        print "Session exists...\n"

    session = testSession
# Assumptions: validate_crud_functions available
# Assumes __uripwd is defined as <user>:<pwd>@<host>:<plugin_port>
from mysqlsh import mysqlx

mySession = mysqlx.get_node_session(__uripwd)

ensure_schema_does_not_exist(mySession, 'js_shell_test')

schema = mySession.create_schema('js_shell_test')
mySession.set_current_schema('js_shell_test')

# Creates a test table with initial data
result = mySession.sql(
    'create table table1 (name varchar(50), age integer, gender varchar(20), primary key (name, age, gender))'
).execute()
result = mySession.sql(
    'create view view1 (my_name, my_age, my_gender) as select name, age, gender from table1;'
).execute()
table = schema.get_table('table1')

result = table.insert({"name": 'jack', "age": 17, "gender": 'male'}).execute()
result = table.insert({"name": 'adam', "age": 15, "gender": 'male'}).execute()
result = table.insert({"name": 'brian', "age": 14, "gender": 'male'}).execute()
result = table.insert({
    "name": 'alma',
    "age": 13,
    "gender": 'female'
}).execute()
result = table.insert({
    "name": 'carol',
    "age": 14,
from mysqlsh import mysqlx

# Connect to server
session = mysqlx.get_node_session({
    'host': 'localhost',
    'port': 33060,
    'dbUser': '******',
    'dbPassword': '******'
})

# Get the Schema test
db = session.get_schema('test')

# Create a new collection
myColl = db.create_collection('my_collection')

# Start a transaction
session.start_transaction()
try:
    myColl.add({
        'name': 'Jack',
        'age': 15,
        'height': 1.76,
        'weight': 69.4
    }).execute()
    myColl.add({'name': 'Susanne', 'age': 24, 'height': 1.65}).execute()
    myColl.add({
        'name': 'Mike',
        'age': 39,
        'height': 1.9,
        'weight': 74.3
Ejemplo n.º 4
0
exports = []
for member in all_members:
    if not member.startswith('__'):
        exports.append(member)

print 'Exported Items:', len(exports)

print 'get_node_session:', type(mysqlx.get_node_session), '\n'
print 'expr:', type(mysqlx.expr), '\n'
print 'dateValue:', type(mysqlx.date_value), '\n'
print 'help:', type(mysqlx.date_value), '\n'
print 'Type:', mysqlx.Type, '\n'
print 'IndexType:', mysqlx.IndexType, '\n'

#@ mysqlx module: get_node_session through URI
mySession = mysqlx.get_node_session(__uripwd)

print mySession, '\n'

if mySession.uri == __displayuri:
    print 'Session using right URI\n'
else:
    print 'Session using wrong URI\n'

mySession.close()

#@ mysqlx module: get_node_session through URI and password
mySession = mysqlx.get_node_session(__uri, __pwd)

print mySession, '\n'
from mysqlsh import mysqlx

# Direct connect with no client side default schema defined
mySession = mysqlx.get_node_session('mike:s3cr3t!@localhost')
mySession.set_current_schema("test")
Ejemplo n.º 6
0
def createTestTable(session, name):

    # use escape function to quote names/identifier
    quoted_name = session.quote_name(name)

    session.sql("DROP TABLE IF EXISTS " + quoted_name).execute()

    create = "CREATE TABLE "
    create += quoted_name
    create += " (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT)"

    session.sql(create).execute()

    return session.get_current_schema().get_table(name)


from mysqlsh import mysqlx

session = mysqlx.get_node_session('mike:s3cr3t!@localhost:33060/test')

default_schema = session.get_default_schema().name
session.set_current_schema(default_schema)

# Creates some tables
table1 = createTestTable(session, 'test1')
table2 = createTestTable(session, 'test2')
Ejemplo n.º 7
0
# Assumptions: ensure_schema_does_not_exist is available
# Assumes __uripwd is defined as <user>:<pwd>@<host>:<plugin_port>
# validateMemer and validateNotMember are defined on the setup script
from mysqlsh import mysqlx

#@ NodeSession: validating members
nodeSession = mysqlx.get_node_session(__uripwd)
all_members = dir(nodeSession)

# Remove the python built in members
nodeSessionMembers = []
for member in all_members:
    if not member.startswith('__'):
        nodeSessionMembers.append(member)

validateMember(nodeSessionMembers, 'close')
validateMember(nodeSessionMembers, 'create_schema')
validateMember(nodeSessionMembers, 'get_current_schema')
validateMember(nodeSessionMembers, 'get_default_schema')
validateMember(nodeSessionMembers, 'get_schema')
validateMember(nodeSessionMembers, 'get_schemas')
validateMember(nodeSessionMembers, 'get_uri')
validateMember(nodeSessionMembers, 'set_current_schema')
validateMember(nodeSessionMembers, 'set_fetch_warnings')
validateMember(nodeSessionMembers, 'sql')
validateMember(nodeSessionMembers, 'default_schema')
validateMember(nodeSessionMembers, 'uri')
validateMember(nodeSessionMembers, 'current_schema')

#@ NodeSession: accessing Schemas
schemas = nodeSession.get_schemas()