1
0
mirror of https://github.com/luapower/mysql.git synced 2025-01-01 14:00:27 +01:00

unimportant

This commit is contained in:
Cosmin Apreutesei 2021-12-05 03:53:30 +02:00
parent 2ce7070da1
commit 53c844a94d
3 changed files with 22 additions and 19 deletions

View File

@ -883,7 +883,8 @@ end
--that's how you have to declare a varchar these days.
function mysql.char_size(byte_size, collation)
charset = collation:match'^[^_]+'
return floor(byte_size / max_char_widths[charset] + .5)
local mcw = max_char_widths[charset]
return mcw and floor(byte_size / mcw + .5) or byte_size
end
--NOTE: MySQL doesn't give enough metadata to generate a form in a UI,
@ -893,7 +894,7 @@ end
local function get_field_packet(buf)
local col = {}
local _ = get_name(buf) --always "def"
col.schema = get_name(buf)
col.db = get_name(buf)
col.table_alias = get_name(buf)
col.table = get_name(buf) --name of origin table
col.name = get_name(buf) --alias column name
@ -961,6 +962,8 @@ local function get_field_packet(buf)
return col
end
local function tonum(x) return tonumber(x) end
local function recv_field_packets(self, field_count, field_attrs, to_lua)
local fields = {}
to_lua = to_lua or self.to_lua
@ -968,7 +971,7 @@ local function recv_field_packets(self, field_count, field_attrs, to_lua)
local typ, buf = recv_packet(self)
checkp(self, typ == 'DATA', 'bad packet type')
local field = get_field_packet(buf)
field.to_lua = to_lua or (field.type == 'number' and tonumber or nil)
field.to_lua = to_lua or (field.type == 'number' and tonum or nil)
field.index = i
fields[i] = field
fields[field.name] = field
@ -1016,8 +1019,8 @@ function mysql.connect(opt)
local host = opt.host
local port = opt.port or 3306
mysql.note('connect', 'host=%s:%s user=%s schema=%s',
host, port, opt.user, opt.schema or '')
mysql.note('connect', 'host=%s:%s user=%s db=%s',
host, port, opt.user, opt.db or '')
local tcp = opt and opt.tcp or require'sock'.tcp
tcp = check_io(self, tcp())
@ -1080,7 +1083,7 @@ function mysql.connect(opt)
buf(23)
set_cstring(buf, opt.user or '')
set_token(buf, opt.password, scramble)
set_cstring(buf, opt.schema or '')
set_cstring(buf, opt.db or '')
send_packet(self, buf)
local typ, buf = recv_packet(self)
@ -1099,7 +1102,7 @@ function mysql.connect(opt)
end
self.charset_is_ascii_superset = self.charset and not mb_charsets[self.charset]
self.schema = opt.schema
self.db = opt.db
self.user = opt.user
return self
@ -1227,7 +1230,7 @@ local function read_result(self, opt)
end
local to_lua = col.to_lua
if to_lua then
v = to_lua(v)
v = to_lua(v, col)
end
else
v = null_value
@ -1246,7 +1249,7 @@ local function read_result(self, opt)
if v ~= nil then
local to_lua = col.to_lua
if to_lua then
v = to_lua(v)
v = to_lua(v, col)
end
else
v = null_value
@ -1283,13 +1286,13 @@ end
conn.get_collation = protect(get_collation)
do
local function pass(self, schema, ret, ...)
local function pass(self, db, ret, ...)
if not ret then return nil, ... end
self.schema = schema
self.db = db
return ret, ...
end
function conn:use(schema)
return pass(self, schema, self:query('use `' .. schema .. '`'))
function conn:use(db)
return pass(self, db, self:query('use `' .. db .. '`'))
end
end

View File

@ -16,7 +16,7 @@ assert(mysql.connect{
port = 3306,
user = 'bar',
password = 'baz',
schema = 'foo',
db = 'foo',
charset = 'utf8mb4',
max_packet_size = 1024 * 1024,
})
@ -50,7 +50,7 @@ The `options` argument is a Lua table holding the following keys:
* `port`: server's port (optional, defaults to 3306).
* `user`: user name.
* `password`: password (optional).
* `schema`: the schema to set as current schema (optional).
* `db`: the database to set as current database (optional).
* `collation`: the collation used for the connection (`charset` is implied by this).
* use `'server'` to get the server's collation and charset for the connection.
* `charset`: the character set used for the connection.
@ -61,7 +61,7 @@ The `options` argument is a Lua table holding the following keys:
"ssl disabled on server" is returned.
* `ssl_verify`: if `true`, then verifies the validity of the server SSL
certificate (default is `false`).
* `to_lua = f(v) -> v` -- custom value converter (defaults to `mysql.to_lua`).
* `to_lua = f(v, col) -> v` -- custom value converter (defaults to `mysql.to_lua`).
### `cn:close() -> true | nil,err`
@ -90,7 +90,7 @@ The `options` arg can contain:
(but `#cols` will).
* `to_array = true` -- return an array of values for single-column results.
* `null_value = val` -- value to use for `null` (defaults to `nil`).
* `to_lua = f(v) -> v` -- custom value converter (defaults to `cn.to_lua`).
* `to_lua = f(v, col) -> v` -- custom value converter (defaults to `cn.to_lua`).
* `field_attrs = {name -> attr}` -- extra field attributes.
For queries that return a result set, it returns an array of rows.

View File

@ -11,7 +11,7 @@ sock.run(function()
port = 3307,
user = 'root',
password = 'root',
schema = 'sp',
db = 'sp',
collation = 'server',
})