mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-07 09:05:55 +00:00
Merge pull request #1696 from tgruben/looker-count
[CORE-838] Looker Integration
This commit is contained in:
commit
214ae4dfac
16 changed files with 2214 additions and 39 deletions
5
api.go
5
api.go
|
|
@ -36,6 +36,8 @@ import (
|
|||
|
||||
"github.com/molecula/featurebase/v2/disco"
|
||||
"github.com/molecula/featurebase/v2/ingest"
|
||||
|
||||
//"github.com/molecula/featurebase/v2/pg"
|
||||
"github.com/molecula/featurebase/v2/pql"
|
||||
"github.com/molecula/featurebase/v2/roaring"
|
||||
"github.com/molecula/featurebase/v2/stats"
|
||||
|
|
@ -3024,6 +3026,9 @@ processing:
|
|||
}
|
||||
return result, ctx.Err()
|
||||
}
|
||||
func (api *API) Plan(ctx context.Context, q string) (*Stmt, error) {
|
||||
return api.server.PlanSQL(ctx, q)
|
||||
}
|
||||
|
||||
type serverInfo struct {
|
||||
ShardWidth uint64 `json:"shardWidth"`
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ func BuildServerFlags(cmd *cobra.Command, srv *server.Command) {
|
|||
flags.DurationVar((*time.Duration)(&srv.Config.Postgres.WriteTimeout), "postgres.write-timeout", time.Duration(srv.Config.Postgres.WriteTimeout), "Timeout for writes on a postgres connection. (set 0 to disable)")
|
||||
flags.Uint32Var(&srv.Config.Postgres.MaxStartupSize, "postgres.max-startup-size", srv.Config.Postgres.MaxStartupSize, "Maximum acceptable size of a postgres startup packet, in bytes. (set 0 to disable)")
|
||||
flags.Uint16Var(&srv.Config.Postgres.ConnectionLimit, "postgres.connection-limit", srv.Config.Postgres.ConnectionLimit, "Maximum number of simultaneous postgres connections to allow. (set 0 to disable)")
|
||||
flags.Uint16Var(&srv.Config.Postgres.SqlVersion, "postgres.sql-version", srv.Config.Postgres.SqlVersion, "Molecula Sql Handling Version (default 1)")
|
||||
|
||||
// Disk and Memory usage cache for ui/usage endpoint
|
||||
flags.Float64Var(&srv.Config.UsageDutyCycle, "usage-duty-cycle", srv.Config.UsageDutyCycle, "Sets the percentage of time that is spent recalculating the disk and memory usage cache. 100.0 for always-running, 0 disables the cache and the /ui/usage endpoint.")
|
||||
|
|
|
|||
652
pg/lookerToFeaturebase.md
Normal file
652
pg/lookerToFeaturebase.md
Normal file
|
|
@ -0,0 +1,652 @@
|
|||
```mermaid
|
||||
sequenceDiagram
|
||||
|
||||
participant 213070643358480 as c0
|
||||
participant 213070643358482 as c1
|
||||
participant 213070643358484 as c2
|
||||
participant 213070643358486 as c3
|
||||
participant 213070643358488 as c4
|
||||
participant 213070643358490 as c5
|
||||
participant 213070643358492 as c6
|
||||
participant 213070643358494 as c7
|
||||
participant 213070643358496 as c8
|
||||
participant 213070643358498 as c9
|
||||
participant 213070643358500 as c10
|
||||
participant 213070643358502 as c11
|
||||
213070643358480->>server:+SSL REQUEST
|
||||
server-->>213070643358480:-SSL BACKEND ANSWER: N
|
||||
213070643358480->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358480:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358480:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358480:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358480:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358480:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358480:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358480:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358480:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358480:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358480:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358480:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358480:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358480:-BACKEND KEY DATA pid=1459324827, key=1506254533
|
||||
server-->>213070643358480:-READY FOR QUERY type=<IDLE>
|
||||
213070643358480->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358480->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358480->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358480->>server:+SYNC
|
||||
server-->>213070643358480:-PARSE COMPLETE
|
||||
server-->>213070643358480:-BIND COMPLETE
|
||||
server-->>213070643358480:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358480:-READY FOR QUERY type=<IDLE>
|
||||
213070643358480->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358480->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358480->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358480->>server:+SYNC
|
||||
server-->>213070643358480:-PARSE COMPLETE
|
||||
server-->>213070643358480:-BIND COMPLETE
|
||||
server-->>213070643358480:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358480:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358480:-READY FOR QUERY type=<IDLE>
|
||||
213070643358480->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358480->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358480->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358480->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358480->>server:+SYNC
|
||||
server-->>213070643358480:-PARSE COMPLETE
|
||||
server-->>213070643358480:-BIND COMPLETE
|
||||
server-->>213070643358480:-NO DATA
|
||||
server-->>213070643358480:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358480:-READY FOR QUERY type=<IDLE>
|
||||
213070643358480->>server:+DISCONNECT
|
||||
213070643358482->>server:+SSL REQUEST
|
||||
server-->>213070643358482:-SSL BACKEND ANSWER: N
|
||||
213070643358482->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358482:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358482:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358482:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358482:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358482:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358482:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358482:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358482:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358482:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358482:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358482:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358482:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358482:-BACKEND KEY DATA pid=1742342691, key=1299317425
|
||||
server-->>213070643358482:-READY FOR QUERY type=<IDLE>
|
||||
213070643358482->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358482->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358482->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358482->>server:+SYNC
|
||||
server-->>213070643358482:-PARSE COMPLETE
|
||||
server-->>213070643358482:-BIND COMPLETE
|
||||
server-->>213070643358482:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358482:-READY FOR QUERY type=<IDLE>
|
||||
213070643358482->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358482->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358482->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358482->>server:+SYNC
|
||||
server-->>213070643358482:-PARSE COMPLETE
|
||||
server-->>213070643358482:-BIND COMPLETE
|
||||
server-->>213070643358482:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358482:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358482:-READY FOR QUERY type=<IDLE>
|
||||
213070643358482->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358482->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358482->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358482->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358482->>server:+SYNC
|
||||
server-->>213070643358482:-PARSE COMPLETE
|
||||
server-->>213070643358482:-BIND COMPLETE
|
||||
server-->>213070643358482:-NO DATA
|
||||
server-->>213070643358482:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358482:-READY FOR QUERY type=<IDLE>
|
||||
213070643358482->>server:+DISCONNECT
|
||||
213070643358484->>server:+SSL REQUEST
|
||||
server-->>213070643358484:-SSL BACKEND ANSWER: N
|
||||
213070643358484->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358484:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358484:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358484:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358484:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358484:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358484:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358484:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358484:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358484:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358484:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358484:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358484:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358484:-BACKEND KEY DATA pid=700852804, key=1377869267
|
||||
server-->>213070643358484:-READY FOR QUERY type=<IDLE>
|
||||
213070643358484->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358484->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358484->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358484->>server:+SYNC
|
||||
server-->>213070643358484:-PARSE COMPLETE
|
||||
server-->>213070643358484:-BIND COMPLETE
|
||||
server-->>213070643358484:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358484:-READY FOR QUERY type=<IDLE>
|
||||
213070643358484->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358484->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358484->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358484->>server:+SYNC
|
||||
server-->>213070643358484:-PARSE COMPLETE
|
||||
server-->>213070643358484:-BIND COMPLETE
|
||||
server-->>213070643358484:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358484:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358484:-READY FOR QUERY type=<IDLE>
|
||||
213070643358484->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358484->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358484->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358484->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358484->>server:+SYNC
|
||||
server-->>213070643358484:-PARSE COMPLETE
|
||||
server-->>213070643358484:-BIND COMPLETE
|
||||
server-->>213070643358484:-NO DATA
|
||||
server-->>213070643358484:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358484:-READY FOR QUERY type=<IDLE>
|
||||
213070643358484->>server:+DISCONNECT
|
||||
213070643358486->>server:+SSL REQUEST
|
||||
server-->>213070643358486:-SSL BACKEND ANSWER: N
|
||||
213070643358486->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358486:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358486:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358486:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358486:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358486:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358486:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358486:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358486:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358486:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358486:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358486:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358486:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358486:-BACKEND KEY DATA pid=413235241, key=1302652759
|
||||
server-->>213070643358486:-READY FOR QUERY type=<IDLE>
|
||||
213070643358486->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358486->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358486->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358486->>server:+SYNC
|
||||
server-->>213070643358486:-PARSE COMPLETE
|
||||
server-->>213070643358486:-BIND COMPLETE
|
||||
server-->>213070643358486:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358486:-READY FOR QUERY type=<IDLE>
|
||||
213070643358486->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358486->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358486->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358486->>server:+SYNC
|
||||
server-->>213070643358486:-PARSE COMPLETE
|
||||
server-->>213070643358486:-BIND COMPLETE
|
||||
server-->>213070643358486:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358486:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358486:-READY FOR QUERY type=<IDLE>
|
||||
213070643358486->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358486->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358486->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358486->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358486->>server:+SYNC
|
||||
server-->>213070643358486:-PARSE COMPLETE
|
||||
server-->>213070643358486:-BIND COMPLETE
|
||||
server-->>213070643358486:-NO DATA
|
||||
server-->>213070643358486:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358486:-READY FOR QUERY type=<IDLE>
|
||||
213070643358486->>server:+PARSE name='', num_params=0, params_type=, query=SELECT pg_backend_pid()
|
||||
213070643358486->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358486->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358486->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643358486->>server:+SYNC
|
||||
server-->>213070643358486:-PARSE COMPLETE
|
||||
server-->>213070643358486:-BIND COMPLETE
|
||||
server-->>213070643358486:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='pg_backend_pid' type=23 type_len=4 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643358486:-DATA ROW num_values=1 ---[Value 0001]--- length=9 value='413235241'
|
||||
server-->>213070643358486:-COMMAND COMPLETE command='SELECT'
|
||||
server-->>213070643358486:-READY FOR QUERY type=<IDLE>
|
||||
213070643358486->>server:+PARSE name='', num_params=0, params_type=, query=SELECT VERSION() AS version
|
||||
213070643358486->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358486->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358486->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643358486->>server:+SYNC
|
||||
server-->>213070643358486:-PARSE COMPLETE
|
||||
server-->>213070643358486:-BIND COMPLETE
|
||||
server-->>213070643358486:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='version' type=25 type_len=65535 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643358486:-DATA ROW num_values=1 ---[Value 0001]--- length=27 value='PostgresSQL 13.0 (molecula)'
|
||||
server-->>213070643358486:-COMMAND COMPLETE command='SELECT'
|
||||
server-->>213070643358486:-READY FOR QUERY type=<IDLE>
|
||||
213070643358486->>server:+PARSE name='', num_params=0, params_type=, query= SELECT COUNT(*) FROM pg_type AS t0, pg_aggregate AS t1, pg_settings AS t2, pg_settings AS t3
|
||||
213070643358486->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358486->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358486->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643358486->>server:+SYNC
|
||||
213070643358488->>server:+SSL REQUEST
|
||||
server-->>213070643358488:-SSL BACKEND ANSWER: N
|
||||
213070643358488->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358488:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358488:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358488:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358488:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358488:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358488:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358488:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358488:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358488:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358488:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358488:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358488:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358488:-BACKEND KEY DATA pid=180554708, key=1504602717
|
||||
server-->>213070643358488:-READY FOR QUERY type=<IDLE>
|
||||
213070643358488->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358488->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358488->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358488->>server:+SYNC
|
||||
server-->>213070643358488:-PARSE COMPLETE
|
||||
server-->>213070643358488:-BIND COMPLETE
|
||||
server-->>213070643358488:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358488:-READY FOR QUERY type=<IDLE>
|
||||
213070643358488->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358488->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358488->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358488->>server:+SYNC
|
||||
server-->>213070643358488:-PARSE COMPLETE
|
||||
server-->>213070643358488:-BIND COMPLETE
|
||||
server-->>213070643358488:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358488:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358488:-READY FOR QUERY type=<IDLE>
|
||||
213070643358488->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358488->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358488->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358488->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358488->>server:+SYNC
|
||||
server-->>213070643358488:-PARSE COMPLETE
|
||||
server-->>213070643358488:-BIND COMPLETE
|
||||
server-->>213070643358488:-NO DATA
|
||||
server-->>213070643358488:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358488:-READY FOR QUERY type=<IDLE>
|
||||
213070643358488->>server:+DISCONNECT
|
||||
213070643358490->>server:+SSL REQUEST
|
||||
server-->>213070643358490:-SSL BACKEND ANSWER: N
|
||||
213070643358490->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358490:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358490:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358490:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358490:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358490:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358490:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358490:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358490:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358490:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358490:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358490:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358490:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358490:-BACKEND KEY DATA pid=1713101217, key=29850369
|
||||
server-->>213070643358490:-READY FOR QUERY type=<IDLE>
|
||||
213070643358490->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358490->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358490->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358490->>server:+SYNC
|
||||
server-->>213070643358490:-PARSE COMPLETE
|
||||
server-->>213070643358490:-BIND COMPLETE
|
||||
server-->>213070643358490:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358490:-READY FOR QUERY type=<IDLE>
|
||||
213070643358490->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358490->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358490->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358490->>server:+SYNC
|
||||
server-->>213070643358490:-PARSE COMPLETE
|
||||
server-->>213070643358490:-BIND COMPLETE
|
||||
server-->>213070643358490:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358490:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358490:-READY FOR QUERY type=<IDLE>
|
||||
213070643358490->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358490->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358490->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358490->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358490->>server:+SYNC
|
||||
server-->>213070643358490:-PARSE COMPLETE
|
||||
server-->>213070643358490:-BIND COMPLETE
|
||||
server-->>213070643358490:-NO DATA
|
||||
server-->>213070643358490:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358490:-READY FOR QUERY type=<IDLE>
|
||||
213070643358490->>server:+PARSE name='', num_params=0, params_type=, query=SELECT VERSION() AS version
|
||||
213070643358490->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358490->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358490->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643358490->>server:+SYNC
|
||||
server-->>213070643358490:-PARSE COMPLETE
|
||||
server-->>213070643358490:-BIND COMPLETE
|
||||
server-->>213070643358490:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='version' type=25 type_len=65535 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643358490:-DATA ROW num_values=1 ---[Value 0001]--- length=27 value='PostgresSQL 13.0 (molecula)'
|
||||
server-->>213070643358490:-COMMAND COMPLETE command='SELECT'
|
||||
server-->>213070643358490:-READY FOR QUERY type=<IDLE>
|
||||
213070643358490->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358490->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358490->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358490->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358490->>server:+SYNC
|
||||
server-->>213070643358490:-PARSE COMPLETE
|
||||
server-->>213070643358490:-BIND COMPLETE
|
||||
server-->>213070643358490:-NO DATA
|
||||
server-->>213070643358490:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358490:-READY FOR QUERY type=<IDLE>
|
||||
213070643358490->>server:+PARSE name='', num_params=0, params_type=, query= SELECT pid as id, query as stmt, EXTRACT(seconds from query_start - NOW()) as elapsed_time FROM pg_stat_activity WHERE usename='docker'
|
||||
213070643358490->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358490->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358490->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643358490->>server:+SYNC
|
||||
server-->>213070643358490:-PARSE COMPLETE
|
||||
server-->>213070643358490:-BIND COMPLETE
|
||||
server-->>213070643358490:-ROW DESCRIPTION: num_fields=3 ---[Field 01]--- name='id' type=23 type_len=4 type_mod=4294967295 relid=0 attnum=0 format=0 ---[Field 02]--- name='stmt' type=25 type_len=65535 type_mod=4294967295 relid=0 attnum=0 format=0 ---[Field 03]--- name='elapsed_time' type=701 type_len=8 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643358490:-DATA ROW num_values=3 ---[Value 0001]--- length=9 value='413235241' ---[Value 0002]--- length=148 value=' SELECT COUNT(*). FROM pg_type AS t0,. pg_aggregate AS t1,. pg_settings AS t2,. pg_settings AS t3.' ---[Value 0003]--- length=11 value='1.311371547'
|
||||
server-->>213070643358490:-DATA ROW num_values=3 ---[Value 0001]--- length=10 value='1713101217' ---[Value 0002]--- length=190 value=' SELECT pid as id,. query as stmt,. EXTRACT(seconds from query_start - NOW()) as elapsed_time. FROM pg_stat_activity. WHERE usename='docker'.' ---[Value 0003]--- length=11 value='0.000169969'
|
||||
server-->>213070643358490:-COMMAND COMPLETE command='SELECT'
|
||||
server-->>213070643358490:-READY FOR QUERY type=<IDLE>
|
||||
213070643358492->>server:+SSL REQUEST
|
||||
server-->>213070643358492:-SSL BACKEND ANSWER: N
|
||||
213070643358492->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358492:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358492:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358492:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358492:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358492:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358492:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358492:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358492:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358492:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358492:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358492:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358492:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358492:-BACKEND KEY DATA pid=2034361563, key=1419995666
|
||||
server-->>213070643358492:-READY FOR QUERY type=<IDLE>
|
||||
213070643358492->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358492->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358492->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358492->>server:+SYNC
|
||||
server-->>213070643358492:-PARSE COMPLETE
|
||||
server-->>213070643358492:-BIND COMPLETE
|
||||
server-->>213070643358492:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358492:-READY FOR QUERY type=<IDLE>
|
||||
213070643358492->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358492->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358492->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358492->>server:+SYNC
|
||||
server-->>213070643358492:-PARSE COMPLETE
|
||||
server-->>213070643358492:-BIND COMPLETE
|
||||
server-->>213070643358492:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358492:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358492:-READY FOR QUERY type=<IDLE>
|
||||
213070643358492->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358492->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358492->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358492->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358492->>server:+SYNC
|
||||
server-->>213070643358492:-PARSE COMPLETE
|
||||
server-->>213070643358492:-BIND COMPLETE
|
||||
server-->>213070643358492:-NO DATA
|
||||
server-->>213070643358492:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358492:-READY FOR QUERY type=<IDLE>
|
||||
213070643358492->>server:+DISCONNECT
|
||||
213070643358494->>server:+SSL REQUEST
|
||||
server-->>213070643358494:-SSL BACKEND ANSWER: N
|
||||
213070643358494->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358494:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358494:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358494:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358494:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358494:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358494:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358494:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358494:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358494:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358494:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358494:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358494:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358494:-BACKEND KEY DATA pid=964429462, key=1673405115
|
||||
server-->>213070643358494:-READY FOR QUERY type=<IDLE>
|
||||
213070643358494->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358494->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358494->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358494->>server:+SYNC
|
||||
server-->>213070643358494:-PARSE COMPLETE
|
||||
server-->>213070643358494:-BIND COMPLETE
|
||||
server-->>213070643358494:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358494:-READY FOR QUERY type=<IDLE>
|
||||
213070643358494->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358494->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358494->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358494->>server:+SYNC
|
||||
server-->>213070643358494:-PARSE COMPLETE
|
||||
server-->>213070643358494:-BIND COMPLETE
|
||||
server-->>213070643358494:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358494:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358494:-READY FOR QUERY type=<IDLE>
|
||||
213070643358494->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358494->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358494->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358494->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358494->>server:+SYNC
|
||||
server-->>213070643358494:-PARSE COMPLETE
|
||||
server-->>213070643358494:-BIND COMPLETE
|
||||
server-->>213070643358494:-NO DATA
|
||||
server-->>213070643358494:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358494:-READY FOR QUERY type=<IDLE>
|
||||
213070643358494->>server:+PARSE name='', num_params=0, params_type=, query=select pg_terminate_backend(413235241)
|
||||
213070643358494->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358494->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358494->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643358494->>server:+SYNC
|
||||
server-->>213070643358494:-PARSE COMPLETE
|
||||
server-->>213070643358494:-BIND COMPLETE
|
||||
server-->>213070643358494:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='pg_terminate_backend' type=16 type_len=1 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643358494:-DATA ROW num_values=1 ---[Value 0001]--- length=1 value='t'
|
||||
server-->>213070643358494:-COMMAND COMPLETE command='SELECT 1'
|
||||
server-->>213070643358486:-PARSE COMPLETE
|
||||
server-->>213070643358486:-BIND COMPLETE
|
||||
server-->>213070643358486:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='count' type=20 type_len=8 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643358486:-ERROR RESPONSE Severity: 'FATAL' Message: 'terminating connection due to administrator command' Code: '57P01'
|
||||
server-->>213070643358494:-READY FOR QUERY type=<IDLE>
|
||||
213070643358490->>server:+DISCONNECT
|
||||
213070643358494->>server:+DISCONNECT
|
||||
213070643358496->>server:+SSL REQUEST
|
||||
server-->>213070643358496:-SSL BACKEND ANSWER: N
|
||||
213070643358496->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358496:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358496:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358496:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358496:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358496:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358496:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358496:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358496:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358496:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358496:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358496:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358496:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358496:-BACKEND KEY DATA pid=841257432, key=992978867
|
||||
server-->>213070643358496:-READY FOR QUERY type=<IDLE>
|
||||
213070643358496->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358496->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358496->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358496->>server:+SYNC
|
||||
server-->>213070643358496:-PARSE COMPLETE
|
||||
server-->>213070643358496:-BIND COMPLETE
|
||||
server-->>213070643358496:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358496:-READY FOR QUERY type=<IDLE>
|
||||
213070643358496->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358496->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358496->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358496->>server:+SYNC
|
||||
server-->>213070643358496:-PARSE COMPLETE
|
||||
server-->>213070643358496:-BIND COMPLETE
|
||||
server-->>213070643358496:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358496:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358496:-READY FOR QUERY type=<IDLE>
|
||||
213070643358496->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358496->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358496->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358496->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358496->>server:+SYNC
|
||||
server-->>213070643358496:-PARSE COMPLETE
|
||||
server-->>213070643358496:-BIND COMPLETE
|
||||
server-->>213070643358496:-NO DATA
|
||||
server-->>213070643358496:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358496:-READY FOR QUERY type=<IDLE>
|
||||
213070643358496->>server:+DISCONNECT
|
||||
213070643358498->>server:+SSL REQUEST
|
||||
server-->>213070643358498:-SSL BACKEND ANSWER: N
|
||||
213070643358498->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358498:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358498:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358498:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358498:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358498:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358498:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358498:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358498:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358498:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358498:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358498:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358498:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358498:-BACKEND KEY DATA pid=645931978, key=579078180
|
||||
server-->>213070643358498:-READY FOR QUERY type=<IDLE>
|
||||
213070643358498->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358498->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358498->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358498->>server:+SYNC
|
||||
server-->>213070643358498:-PARSE COMPLETE
|
||||
server-->>213070643358498:-BIND COMPLETE
|
||||
server-->>213070643358498:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358498:-READY FOR QUERY type=<IDLE>
|
||||
213070643358498->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358498->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358498->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358498->>server:+SYNC
|
||||
server-->>213070643358498:-PARSE COMPLETE
|
||||
server-->>213070643358498:-BIND COMPLETE
|
||||
server-->>213070643358498:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358498:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358498:-READY FOR QUERY type=<IDLE>
|
||||
213070643358498->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358498->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358498->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358498->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358498->>server:+SYNC
|
||||
server-->>213070643358498:-PARSE COMPLETE
|
||||
server-->>213070643358498:-BIND COMPLETE
|
||||
server-->>213070643358498:-NO DATA
|
||||
server-->>213070643358498:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358498:-READY FOR QUERY type=<IDLE>
|
||||
213070643358498->>server:+PARSE name='', num_params=0, params_type=, query=SELECT 1
|
||||
213070643358498->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358498->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358498->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643358498->>server:+SYNC
|
||||
server-->>213070643358498:-PARSE COMPLETE
|
||||
server-->>213070643358498:-BIND COMPLETE
|
||||
server-->>213070643358498:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='?column?' type=23 type_len=4 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643358498:-DATA ROW num_values=1 ---[Value 0001]--- length=1 value='1'
|
||||
server-->>213070643358498:-COMMAND COMPLETE command='SELECT'
|
||||
server-->>213070643358498:-READY FOR QUERY type=<IDLE>
|
||||
213070643358498->>server:+DISCONNECT
|
||||
213070643358500->>server:+SSL REQUEST
|
||||
server-->>213070643358500:-SSL BACKEND ANSWER: N
|
||||
213070643358500->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358500:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358500:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358500:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358500:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358500:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358500:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358500:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358500:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358500:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358500:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358500:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358500:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358500:-BACKEND KEY DATA pid=1632401438, key=1341645778
|
||||
server-->>213070643358500:-READY FOR QUERY type=<IDLE>
|
||||
213070643358500->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358500->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358500->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358500->>server:+SYNC
|
||||
server-->>213070643358500:-PARSE COMPLETE
|
||||
server-->>213070643358500:-BIND COMPLETE
|
||||
server-->>213070643358500:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358500:-READY FOR QUERY type=<IDLE>
|
||||
213070643358500->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358500->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358500->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358500->>server:+SYNC
|
||||
server-->>213070643358500:-PARSE COMPLETE
|
||||
server-->>213070643358500:-BIND COMPLETE
|
||||
server-->>213070643358500:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358500:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358500:-READY FOR QUERY type=<IDLE>
|
||||
213070643358500->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358500->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358500->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358500->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358500->>server:+SYNC
|
||||
server-->>213070643358500:-PARSE COMPLETE
|
||||
server-->>213070643358500:-BIND COMPLETE
|
||||
server-->>213070643358500:-NO DATA
|
||||
server-->>213070643358500:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358500:-READY FOR QUERY type=<IDLE>
|
||||
213070643358500->>server:+DISCONNECT
|
||||
213070643358502->>server:+SSL REQUEST
|
||||
server-->>213070643358502:-SSL BACKEND ANSWER: N
|
||||
213070643358502->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643358502:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643358502:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643358502:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643358502:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643358502:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643358502:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643358502:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643358502:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643358502:-PARAMETER STATUS name='server_version', value='13.0.0'
|
||||
server-->>213070643358502:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643358502:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643358502:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643358502:-BACKEND KEY DATA pid=232586748, key=226557416
|
||||
server-->>213070643358502:-READY FOR QUERY type=<IDLE>
|
||||
213070643358502->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643358502->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358502->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358502->>server:+SYNC
|
||||
server-->>213070643358502:-PARSE COMPLETE
|
||||
server-->>213070643358502:-BIND COMPLETE
|
||||
server-->>213070643358502:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358502:-READY FOR QUERY type=<IDLE>
|
||||
213070643358502->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643358502->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358502->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358502->>server:+SYNC
|
||||
server-->>213070643358502:-PARSE COMPLETE
|
||||
server-->>213070643358502:-BIND COMPLETE
|
||||
server-->>213070643358502:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643358502:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643358502:-READY FOR QUERY type=<IDLE>
|
||||
213070643358502->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643358502->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358502->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358502->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643358502->>server:+SYNC
|
||||
server-->>213070643358502:-PARSE COMPLETE
|
||||
server-->>213070643358502:-BIND COMPLETE
|
||||
server-->>213070643358502:-NO DATA
|
||||
server-->>213070643358502:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643358502:-READY FOR QUERY type=<IDLE>
|
||||
213070643358502->>server:+PARSE name='', num_params=0, params_type=, query=SELECT VERSION() AS version
|
||||
213070643358502->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643358502->>server:+DESCRIBE kind='P', name=''
|
||||
213070643358502->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643358502->>server:+SYNC
|
||||
server-->>213070643358502:-PARSE COMPLETE
|
||||
server-->>213070643358502:-BIND COMPLETE
|
||||
server-->>213070643358502:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='version' type=25 type_len=65535 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643358502:-DATA ROW num_values=1 ---[Value 0001]--- length=27 value='PostgresSQL 13.0 (molecula)'
|
||||
server-->>213070643358502:-COMMAND COMPLETE command='SELECT'
|
||||
server-->>213070643358502:-READY FOR QUERY type=<IDLE>
|
||||
213070643358502->>server:+DISCONNECT
|
||||
```
|
||||
677
pg/lookerToPostgres.md
Normal file
677
pg/lookerToPostgres.md
Normal file
|
|
@ -0,0 +1,677 @@
|
|||
```mermaid
|
||||
sequenceDiagram
|
||||
|
||||
participant 213070643360888 as c0
|
||||
participant 213070643360892 as c1
|
||||
participant 213070643360896 as c2
|
||||
participant 213070643360900 as c3
|
||||
participant 213070643360904 as c4
|
||||
participant 213070643360908 as c5
|
||||
participant 213070643360912 as c6
|
||||
participant 213070643360916 as c7
|
||||
participant 213070643360920 as c8
|
||||
participant 213070643360924 as c9
|
||||
participant 213070643360928 as c10
|
||||
participant 213070643360932 as c11
|
||||
213070643360888->>server:+SSL REQUEST
|
||||
server-->>213070643360888:-SSL BACKEND ANSWER: N
|
||||
213070643360888->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360888:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='affbc4bf')
|
||||
213070643360888->>server:+PASSWORD MESSAGE password=md5de1ae46649b137ee14e14d8fd5fc6cb6
|
||||
server-->>213070643360888:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360888:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360888:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360888:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360888:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360888:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360888:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360888:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360888:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360888:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360888:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360888:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360888:-BACKEND KEY DATA pid=97, key=2120775944
|
||||
server-->>213070643360888:-READY FOR QUERY type=<IDLE>
|
||||
213070643360888->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360888->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360888->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360888->>server:+SYNC
|
||||
server-->>213070643360888:-PARSE COMPLETE
|
||||
server-->>213070643360888:-BIND COMPLETE
|
||||
server-->>213070643360888:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360888:-READY FOR QUERY type=<IDLE>
|
||||
213070643360888->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360888->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360888->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360888->>server:+SYNC
|
||||
server-->>213070643360888:-PARSE COMPLETE
|
||||
server-->>213070643360888:-BIND COMPLETE
|
||||
server-->>213070643360888:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360888:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360888:-READY FOR QUERY type=<IDLE>
|
||||
213070643360888->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360888->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360888->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360888->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360888->>server:+SYNC
|
||||
server-->>213070643360888:-PARSE COMPLETE
|
||||
server-->>213070643360888:-BIND COMPLETE
|
||||
server-->>213070643360888:-NO DATA
|
||||
server-->>213070643360888:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360888:-READY FOR QUERY type=<IDLE>
|
||||
213070643360888->>server:+DISCONNECT
|
||||
213070643360892->>server:+SSL REQUEST
|
||||
server-->>213070643360892:-SSL BACKEND ANSWER: N
|
||||
213070643360892->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360892:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='0b76ce86')
|
||||
213070643360892->>server:+PASSWORD MESSAGE password=md5b82e4b6283fe5694c0199ca058378bb8
|
||||
server-->>213070643360892:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360892:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360892:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360892:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360892:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360892:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360892:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360892:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360892:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360892:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360892:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360892:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360892:-BACKEND KEY DATA pid=98, key=1329847468
|
||||
server-->>213070643360892:-READY FOR QUERY type=<IDLE>
|
||||
213070643360892->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360892->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360892->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360892->>server:+SYNC
|
||||
server-->>213070643360892:-PARSE COMPLETE
|
||||
server-->>213070643360892:-BIND COMPLETE
|
||||
server-->>213070643360892:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360892:-READY FOR QUERY type=<IDLE>
|
||||
213070643360892->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360892->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360892->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360892->>server:+SYNC
|
||||
server-->>213070643360892:-PARSE COMPLETE
|
||||
server-->>213070643360892:-BIND COMPLETE
|
||||
server-->>213070643360892:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360892:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360892:-READY FOR QUERY type=<IDLE>
|
||||
213070643360892->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360892->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360892->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360892->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360892->>server:+SYNC
|
||||
server-->>213070643360892:-PARSE COMPLETE
|
||||
server-->>213070643360892:-BIND COMPLETE
|
||||
server-->>213070643360892:-NO DATA
|
||||
server-->>213070643360892:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360892:-READY FOR QUERY type=<IDLE>
|
||||
213070643360892->>server:+DISCONNECT
|
||||
213070643360896->>server:+SSL REQUEST
|
||||
server-->>213070643360896:-SSL BACKEND ANSWER: N
|
||||
213070643360896->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360896:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='80e88231')
|
||||
213070643360896->>server:+PASSWORD MESSAGE password=md59023db05ad8c94976359641cf0ada45a
|
||||
server-->>213070643360896:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360896:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360896:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360896:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360896:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360896:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360896:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360896:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360896:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360896:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360896:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360896:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360896:-BACKEND KEY DATA pid=99, key=1084480878
|
||||
server-->>213070643360896:-READY FOR QUERY type=<IDLE>
|
||||
213070643360896->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360896->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360896->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360896->>server:+SYNC
|
||||
server-->>213070643360896:-PARSE COMPLETE
|
||||
server-->>213070643360896:-BIND COMPLETE
|
||||
server-->>213070643360896:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360896:-READY FOR QUERY type=<IDLE>
|
||||
213070643360896->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360896->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360896->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360896->>server:+SYNC
|
||||
server-->>213070643360896:-PARSE COMPLETE
|
||||
server-->>213070643360896:-BIND COMPLETE
|
||||
server-->>213070643360896:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360896:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360896:-READY FOR QUERY type=<IDLE>
|
||||
213070643360896->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360896->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360896->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360896->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360896->>server:+SYNC
|
||||
server-->>213070643360896:-PARSE COMPLETE
|
||||
server-->>213070643360896:-BIND COMPLETE
|
||||
server-->>213070643360896:-NO DATA
|
||||
server-->>213070643360896:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360896:-READY FOR QUERY type=<IDLE>
|
||||
213070643360896->>server:+DISCONNECT
|
||||
213070643360900->>server:+SSL REQUEST
|
||||
server-->>213070643360900:-SSL BACKEND ANSWER: N
|
||||
213070643360900->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360900:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='68a07783')
|
||||
213070643360900->>server:+PASSWORD MESSAGE password=md5136c8b8ec47347f93827ec5d7023199c
|
||||
server-->>213070643360900:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360900:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360900:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360900:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360900:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360900:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360900:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360900:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360900:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360900:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360900:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360900:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360900:-BACKEND KEY DATA pid=100, key=594556468
|
||||
server-->>213070643360900:-READY FOR QUERY type=<IDLE>
|
||||
213070643360900->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360900->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360900->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360900->>server:+SYNC
|
||||
server-->>213070643360900:-PARSE COMPLETE
|
||||
server-->>213070643360900:-BIND COMPLETE
|
||||
server-->>213070643360900:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360900:-READY FOR QUERY type=<IDLE>
|
||||
213070643360900->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360900->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360900->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360900->>server:+SYNC
|
||||
server-->>213070643360900:-PARSE COMPLETE
|
||||
server-->>213070643360900:-BIND COMPLETE
|
||||
server-->>213070643360900:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360900:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360900:-READY FOR QUERY type=<IDLE>
|
||||
213070643360900->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360900->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360900->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360900->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360900->>server:+SYNC
|
||||
server-->>213070643360900:-PARSE COMPLETE
|
||||
server-->>213070643360900:-BIND COMPLETE
|
||||
server-->>213070643360900:-NO DATA
|
||||
server-->>213070643360900:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360900:-READY FOR QUERY type=<IDLE>
|
||||
213070643360900->>server:+PARSE name='', num_params=0, params_type=, query=SELECT pg_backend_pid()
|
||||
213070643360900->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360900->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360900->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643360900->>server:+SYNC
|
||||
server-->>213070643360900:-PARSE COMPLETE
|
||||
server-->>213070643360900:-BIND COMPLETE
|
||||
server-->>213070643360900:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='pg_backend_pid' type=23 type_len=4 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643360900:-DATA ROW num_values=1 ---[Value 0001]--- length=3 value='100'
|
||||
server-->>213070643360900:-COMMAND COMPLETE command='SELECT 1'
|
||||
server-->>213070643360900:-READY FOR QUERY type=<IDLE>
|
||||
213070643360900->>server:+PARSE name='', num_params=0, params_type=, query=SELECT VERSION() AS version
|
||||
213070643360900->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360900->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360900->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643360900->>server:+SYNC
|
||||
server-->>213070643360900:-PARSE COMPLETE
|
||||
server-->>213070643360900:-BIND COMPLETE
|
||||
server-->>213070643360900:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='version' type=25 type_len=65535 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643360900:-DATA ROW num_values=1 ---[Value 0001]--- length=112 value='PostgreSQL 13.3 (Debian 13.3-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit'
|
||||
server-->>213070643360900:-COMMAND COMPLETE command='SELECT 1'
|
||||
server-->>213070643360900:-READY FOR QUERY type=<IDLE>
|
||||
213070643360900->>server:+PARSE name='', num_params=0, params_type=, query= SELECT COUNT(*) FROM pg_type AS t0, pg_aggregate AS t1, pg_settings AS t2, pg_settings AS t3
|
||||
213070643360900->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360900->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360900->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643360900->>server:+SYNC
|
||||
213070643360904->>server:+SSL REQUEST
|
||||
server-->>213070643360904:-SSL BACKEND ANSWER: N
|
||||
213070643360904->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360904:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='a03ee692')
|
||||
213070643360904->>server:+PASSWORD MESSAGE password=md5cfedb52ae0cafa87a4f1066df3ba6802
|
||||
server-->>213070643360904:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360904:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360904:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360904:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360904:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360904:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360904:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360904:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360904:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360904:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360904:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360904:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360904:-BACKEND KEY DATA pid=101, key=2854304053
|
||||
server-->>213070643360904:-READY FOR QUERY type=<IDLE>
|
||||
213070643360904->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360904->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360904->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360904->>server:+SYNC
|
||||
server-->>213070643360904:-PARSE COMPLETE
|
||||
server-->>213070643360904:-BIND COMPLETE
|
||||
server-->>213070643360904:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360904:-READY FOR QUERY type=<IDLE>
|
||||
213070643360904->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360904->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360904->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360904->>server:+SYNC
|
||||
server-->>213070643360904:-PARSE COMPLETE
|
||||
server-->>213070643360904:-BIND COMPLETE
|
||||
server-->>213070643360904:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360904:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360904:-READY FOR QUERY type=<IDLE>
|
||||
213070643360904->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360904->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360904->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360904->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360904->>server:+SYNC
|
||||
server-->>213070643360904:-PARSE COMPLETE
|
||||
server-->>213070643360904:-BIND COMPLETE
|
||||
server-->>213070643360904:-NO DATA
|
||||
server-->>213070643360904:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360904:-READY FOR QUERY type=<IDLE>
|
||||
213070643360904->>server:+DISCONNECT
|
||||
213070643360908->>server:+SSL REQUEST
|
||||
server-->>213070643360908:-SSL BACKEND ANSWER: N
|
||||
213070643360908->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360908:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='be3afb9d')
|
||||
213070643360908->>server:+PASSWORD MESSAGE password=md57b5cfa30f89fc7733c814addcd548c03
|
||||
server-->>213070643360908:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360908:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360908:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360908:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360908:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360908:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360908:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360908:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360908:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360908:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360908:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360908:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360908:-BACKEND KEY DATA pid=102, key=3089396074
|
||||
server-->>213070643360908:-READY FOR QUERY type=<IDLE>
|
||||
213070643360908->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360908->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360908->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360908->>server:+SYNC
|
||||
server-->>213070643360908:-PARSE COMPLETE
|
||||
server-->>213070643360908:-BIND COMPLETE
|
||||
server-->>213070643360908:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360908:-READY FOR QUERY type=<IDLE>
|
||||
213070643360908->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360908->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360908->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360908->>server:+SYNC
|
||||
server-->>213070643360908:-PARSE COMPLETE
|
||||
server-->>213070643360908:-BIND COMPLETE
|
||||
server-->>213070643360908:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360908:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360908:-READY FOR QUERY type=<IDLE>
|
||||
213070643360908->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360908->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360908->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360908->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360908->>server:+SYNC
|
||||
server-->>213070643360908:-PARSE COMPLETE
|
||||
server-->>213070643360908:-BIND COMPLETE
|
||||
server-->>213070643360908:-NO DATA
|
||||
server-->>213070643360908:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360908:-READY FOR QUERY type=<IDLE>
|
||||
213070643360908->>server:+PARSE name='', num_params=0, params_type=, query=SELECT VERSION() AS version
|
||||
213070643360908->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360908->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360908->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643360908->>server:+SYNC
|
||||
server-->>213070643360908:-PARSE COMPLETE
|
||||
server-->>213070643360908:-BIND COMPLETE
|
||||
server-->>213070643360908:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='version' type=25 type_len=65535 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643360908:-DATA ROW num_values=1 ---[Value 0001]--- length=112 value='PostgreSQL 13.3 (Debian 13.3-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit'
|
||||
server-->>213070643360908:-COMMAND COMPLETE command='SELECT 1'
|
||||
server-->>213070643360908:-READY FOR QUERY type=<IDLE>
|
||||
213070643360908->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360908->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360908->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360908->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360908->>server:+SYNC
|
||||
server-->>213070643360908:-PARSE COMPLETE
|
||||
server-->>213070643360908:-BIND COMPLETE
|
||||
server-->>213070643360908:-NO DATA
|
||||
server-->>213070643360908:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360908:-READY FOR QUERY type=<IDLE>
|
||||
213070643360908->>server:+PARSE name='', num_params=0, params_type=, query= SELECT pid as id, query as stmt, EXTRACT(seconds from query_start - NOW()) as elapsed_time FROM pg_stat_activity WHERE usename='docker'
|
||||
213070643360908->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360908->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360908->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643360908->>server:+SYNC
|
||||
server-->>213070643360908:-PARSE COMPLETE
|
||||
server-->>213070643360908:-BIND COMPLETE
|
||||
server-->>213070643360908:-ROW DESCRIPTION: num_fields=3 ---[Field 01]--- name='id' type=23 type_len=4 type_mod=4294967295 relid=12250 attnum=3 format=0 ---[Field 02]--- name='stmt' type=25 type_len=65535 type_mod=4294967295 relid=12250 attnum=20 format=0 ---[Field 03]--- name='elapsed_time' type=701 type_len=8 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643360908:-DATA ROW num_values=3 ---[Value 0001]--- length=2 value='81' ---[Value 0002]--- length=0 value='' ---[Value 0003]--- length=-1 value=NULL
|
||||
server-->>213070643360908:-DATA ROW num_values=3 ---[Value 0001]--- length=3 value='100' ---[Value 0002]--- length=148 value=' SELECT COUNT(*). FROM pg_type AS t0,. pg_aggregate AS t1,. pg_settings AS t2,. pg_settings AS t3.' ---[Value 0003]--- length=9 value='-1.155449'
|
||||
server-->>213070643360908:-DATA ROW num_values=3 ---[Value 0001]--- length=3 value='102' ---[Value 0002]--- length=190 value=' SELECT pid as id,. query as stmt,. EXTRACT(seconds from query_start - NOW()) as elapsed_time. FROM pg_stat_activity. WHERE usename='docker'.' ---[Value 0003]--- length=8 value='0.002903'
|
||||
server-->>213070643360908:-COMMAND COMPLETE command='SELECT 3'
|
||||
server-->>213070643360908:-READY FOR QUERY type=<IDLE>
|
||||
213070643360912->>server:+SSL REQUEST
|
||||
server-->>213070643360912:-SSL BACKEND ANSWER: N
|
||||
213070643360912->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360912:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='14444412')
|
||||
213070643360912->>server:+PASSWORD MESSAGE password=md59cef18c88b7988d7ac2f215fc1569c62
|
||||
server-->>213070643360912:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360912:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360912:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360912:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360912:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360912:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360912:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360912:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360912:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360912:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360912:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360912:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360912:-BACKEND KEY DATA pid=103, key=1911102642
|
||||
server-->>213070643360912:-READY FOR QUERY type=<IDLE>
|
||||
213070643360912->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360912->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360912->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360912->>server:+SYNC
|
||||
server-->>213070643360912:-PARSE COMPLETE
|
||||
server-->>213070643360912:-BIND COMPLETE
|
||||
server-->>213070643360912:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360912:-READY FOR QUERY type=<IDLE>
|
||||
213070643360912->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360912->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360912->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360912->>server:+SYNC
|
||||
server-->>213070643360912:-PARSE COMPLETE
|
||||
server-->>213070643360912:-BIND COMPLETE
|
||||
server-->>213070643360912:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360912:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360912:-READY FOR QUERY type=<IDLE>
|
||||
213070643360912->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360912->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360912->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360912->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360912->>server:+SYNC
|
||||
server-->>213070643360912:-PARSE COMPLETE
|
||||
server-->>213070643360912:-BIND COMPLETE
|
||||
server-->>213070643360912:-NO DATA
|
||||
server-->>213070643360912:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360912:-READY FOR QUERY type=<IDLE>
|
||||
213070643360912->>server:+DISCONNECT
|
||||
213070643360916->>server:+SSL REQUEST
|
||||
server-->>213070643360916:-SSL BACKEND ANSWER: N
|
||||
213070643360916->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360916:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='9eb7546f')
|
||||
213070643360916->>server:+PASSWORD MESSAGE password=md5c7655226306ab14fa17e44dba876a348
|
||||
server-->>213070643360916:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360916:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360916:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360916:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360916:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360916:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360916:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360916:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360916:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360916:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360916:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360916:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360916:-BACKEND KEY DATA pid=104, key=927987783
|
||||
server-->>213070643360916:-READY FOR QUERY type=<IDLE>
|
||||
213070643360916->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360916->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360916->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360916->>server:+SYNC
|
||||
server-->>213070643360916:-PARSE COMPLETE
|
||||
server-->>213070643360916:-BIND COMPLETE
|
||||
server-->>213070643360916:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360916:-READY FOR QUERY type=<IDLE>
|
||||
213070643360916->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360916->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360916->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360916->>server:+SYNC
|
||||
server-->>213070643360916:-PARSE COMPLETE
|
||||
server-->>213070643360916:-BIND COMPLETE
|
||||
server-->>213070643360916:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360916:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360916:-READY FOR QUERY type=<IDLE>
|
||||
213070643360916->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360916->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360916->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360916->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360916->>server:+SYNC
|
||||
server-->>213070643360916:-PARSE COMPLETE
|
||||
server-->>213070643360916:-BIND COMPLETE
|
||||
server-->>213070643360916:-NO DATA
|
||||
server-->>213070643360916:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360916:-READY FOR QUERY type=<IDLE>
|
||||
213070643360916->>server:+PARSE name='', num_params=0, params_type=, query=select pg_terminate_backend(100)
|
||||
213070643360916->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360916->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360916->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643360916->>server:+SYNC
|
||||
server-->>213070643360916:-PARSE COMPLETE
|
||||
server-->>213070643360916:-BIND COMPLETE
|
||||
server-->>213070643360916:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='pg_terminate_backend' type=16 type_len=1 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643360916:-DATA ROW num_values=1 ---[Value 0001]--- length=1 value='t'
|
||||
server-->>213070643360916:-COMMAND COMPLETE command='SELECT 1'
|
||||
server-->>213070643360916:-READY FOR QUERY type=<IDLE>
|
||||
server-->>213070643360900:-PARSE COMPLETE
|
||||
server-->>213070643360900:-BIND COMPLETE
|
||||
server-->>213070643360900:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='count' type=20 type_len=8 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643360900:-ERROR RESPONSE File: 'postgres.c' Severity: 'FATAL' Message: 'terminating connection due to administrator command' Code: '57P01' Routine: 'ProcessInterrupts' Line: '3090'
|
||||
213070643360908->>server:+DISCONNECT
|
||||
213070643360916->>server:+DISCONNECT
|
||||
213070643360920->>server:+SSL REQUEST
|
||||
server-->>213070643360920:-SSL BACKEND ANSWER: N
|
||||
213070643360920->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360920:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='1ad4dcf7')
|
||||
213070643360920->>server:+PASSWORD MESSAGE password=md554de511c5219f67a8bbe92da445fa5a2
|
||||
server-->>213070643360920:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360920:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360920:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360920:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360920:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360920:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360920:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360920:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360920:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360920:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360920:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360920:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360920:-BACKEND KEY DATA pid=105, key=3630332440
|
||||
server-->>213070643360920:-READY FOR QUERY type=<IDLE>
|
||||
213070643360920->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360920->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360920->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360920->>server:+SYNC
|
||||
server-->>213070643360920:-PARSE COMPLETE
|
||||
server-->>213070643360920:-BIND COMPLETE
|
||||
server-->>213070643360920:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360920:-READY FOR QUERY type=<IDLE>
|
||||
213070643360920->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360920->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360920->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360920->>server:+SYNC
|
||||
server-->>213070643360920:-PARSE COMPLETE
|
||||
server-->>213070643360920:-BIND COMPLETE
|
||||
server-->>213070643360920:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360920:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360920:-READY FOR QUERY type=<IDLE>
|
||||
213070643360920->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360920->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360920->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360920->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360920->>server:+SYNC
|
||||
server-->>213070643360920:-PARSE COMPLETE
|
||||
server-->>213070643360920:-BIND COMPLETE
|
||||
server-->>213070643360920:-NO DATA
|
||||
server-->>213070643360920:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360920:-READY FOR QUERY type=<IDLE>
|
||||
213070643360920->>server:+DISCONNECT
|
||||
213070643360924->>server:+SSL REQUEST
|
||||
server-->>213070643360924:-SSL BACKEND ANSWER: N
|
||||
213070643360924->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360924:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='494c352f')
|
||||
213070643360924->>server:+PASSWORD MESSAGE password=md5919fc9ed056904fa0d8e1dd00625a556
|
||||
server-->>213070643360924:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360924:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360924:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360924:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360924:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360924:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360924:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360924:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360924:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360924:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360924:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360924:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360924:-BACKEND KEY DATA pid=106, key=3364308023
|
||||
server-->>213070643360924:-READY FOR QUERY type=<IDLE>
|
||||
213070643360924->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360924->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360924->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360924->>server:+SYNC
|
||||
server-->>213070643360924:-PARSE COMPLETE
|
||||
server-->>213070643360924:-BIND COMPLETE
|
||||
server-->>213070643360924:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360924:-READY FOR QUERY type=<IDLE>
|
||||
213070643360924->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360924->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360924->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360924->>server:+SYNC
|
||||
server-->>213070643360924:-PARSE COMPLETE
|
||||
server-->>213070643360924:-BIND COMPLETE
|
||||
server-->>213070643360924:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360924:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360924:-READY FOR QUERY type=<IDLE>
|
||||
213070643360924->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360924->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360924->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360924->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360924->>server:+SYNC
|
||||
server-->>213070643360924:-PARSE COMPLETE
|
||||
server-->>213070643360924:-BIND COMPLETE
|
||||
server-->>213070643360924:-NO DATA
|
||||
server-->>213070643360924:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360924:-READY FOR QUERY type=<IDLE>
|
||||
213070643360924->>server:+PARSE name='', num_params=0, params_type=, query=SELECT 1
|
||||
213070643360924->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360924->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360924->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643360924->>server:+SYNC
|
||||
server-->>213070643360924:-PARSE COMPLETE
|
||||
server-->>213070643360924:-BIND COMPLETE
|
||||
server-->>213070643360924:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='?column?' type=23 type_len=4 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643360924:-DATA ROW num_values=1 ---[Value 0001]--- length=1 value='1'
|
||||
server-->>213070643360924:-COMMAND COMPLETE command='SELECT 1'
|
||||
server-->>213070643360924:-READY FOR QUERY type=<IDLE>
|
||||
213070643360924->>server:+DISCONNECT
|
||||
213070643360928->>server:+SSL REQUEST
|
||||
server-->>213070643360928:-SSL BACKEND ANSWER: N
|
||||
213070643360928->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360928:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='4b2173db')
|
||||
213070643360928->>server:+PASSWORD MESSAGE password=md53977c39c5c7cdef7f80e74b256a8ce25
|
||||
server-->>213070643360928:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360928:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360928:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360928:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360928:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360928:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360928:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360928:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360928:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360928:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360928:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360928:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360928:-BACKEND KEY DATA pid=107, key=1988416582
|
||||
server-->>213070643360928:-READY FOR QUERY type=<IDLE>
|
||||
213070643360928->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360928->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360928->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360928->>server:+SYNC
|
||||
server-->>213070643360928:-PARSE COMPLETE
|
||||
server-->>213070643360928:-BIND COMPLETE
|
||||
server-->>213070643360928:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360928:-READY FOR QUERY type=<IDLE>
|
||||
213070643360928->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360928->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360928->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360928->>server:+SYNC
|
||||
server-->>213070643360928:-PARSE COMPLETE
|
||||
server-->>213070643360928:-BIND COMPLETE
|
||||
server-->>213070643360928:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360928:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360928:-READY FOR QUERY type=<IDLE>
|
||||
213070643360928->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360928->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360928->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360928->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360928->>server:+SYNC
|
||||
server-->>213070643360928:-PARSE COMPLETE
|
||||
server-->>213070643360928:-BIND COMPLETE
|
||||
server-->>213070643360928:-NO DATA
|
||||
server-->>213070643360928:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360928:-READY FOR QUERY type=<IDLE>
|
||||
213070643360928->>server:+DISCONNECT
|
||||
213070643360932->>server:+SSL REQUEST
|
||||
server-->>213070643360932:-SSL BACKEND ANSWER: N
|
||||
213070643360932->>server:+STARTUP MESSAGE version: 3 database=trait_store extra_float_digits=2 TimeZone=GMT client_encoding=UTF8 user=docker DateStyle=ISO
|
||||
server-->>213070643360932:-AUTHENTIFICATION REQUEST code=5 (MD5 salt='f6d0f51d')
|
||||
213070643360932->>server:+PASSWORD MESSAGE password=md5b5b322fe9bcc7c242c6b44cc8a7898e8
|
||||
server-->>213070643360932:-AUTHENTIFICATION REQUEST code=0 (SUCCESS)
|
||||
server-->>213070643360932:-PARAMETER STATUS name='application_name', value=''
|
||||
server-->>213070643360932:-PARAMETER STATUS name='client_encoding', value='UTF8'
|
||||
server-->>213070643360932:-PARAMETER STATUS name='DateStyle', value='ISO, MDY'
|
||||
server-->>213070643360932:-PARAMETER STATUS name='integer_datetimes', value='on'
|
||||
server-->>213070643360932:-PARAMETER STATUS name='IntervalStyle', value='postgres'
|
||||
server-->>213070643360932:-PARAMETER STATUS name='is_superuser', value='on'
|
||||
server-->>213070643360932:-PARAMETER STATUS name='server_encoding', value='UTF8'
|
||||
server-->>213070643360932:-PARAMETER STATUS name='server_version', value='13.3 (Debian 13.3-1.pgdg100+1)'
|
||||
server-->>213070643360932:-PARAMETER STATUS name='session_authorization', value='docker'
|
||||
server-->>213070643360932:-PARAMETER STATUS name='standard_conforming_strings', value='on'
|
||||
server-->>213070643360932:-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
server-->>213070643360932:-BACKEND KEY DATA pid=108, key=997991029
|
||||
server-->>213070643360932:-READY FOR QUERY type=<IDLE>
|
||||
213070643360932->>server:+PARSE name='', num_params=0, params_type=, query=SET extra_float_digits = 3
|
||||
213070643360932->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360932->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360932->>server:+SYNC
|
||||
server-->>213070643360932:-PARSE COMPLETE
|
||||
server-->>213070643360932:-BIND COMPLETE
|
||||
server-->>213070643360932:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360932:-READY FOR QUERY type=<IDLE>
|
||||
213070643360932->>server:+PARSE name='', num_params=0, params_type=, query=SET application_name = 'PostgreSQL JDBC Driver'
|
||||
213070643360932->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360932->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360932->>server:+SYNC
|
||||
server-->>213070643360932:-PARSE COMPLETE
|
||||
server-->>213070643360932:-BIND COMPLETE
|
||||
server-->>213070643360932:-PARAMETER STATUS name='application_name', value='PostgreSQL JDBC Driver'
|
||||
server-->>213070643360932:-COMMAND COMPLETE command='SET'
|
||||
server-->>213070643360932:-READY FOR QUERY type=<IDLE>
|
||||
213070643360932->>server:+PARSE name='', num_params=0, params_type=, query=
|
||||
213070643360932->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360932->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360932->>server:+EXECUTE name='', nb_rows=1
|
||||
213070643360932->>server:+SYNC
|
||||
server-->>213070643360932:-PARSE COMPLETE
|
||||
server-->>213070643360932:-BIND COMPLETE
|
||||
server-->>213070643360932:-NO DATA
|
||||
server-->>213070643360932:-EMPTY QUERY RESPONSE
|
||||
server-->>213070643360932:-READY FOR QUERY type=<IDLE>
|
||||
213070643360932->>server:+PARSE name='', num_params=0, params_type=, query=SELECT VERSION() AS version
|
||||
213070643360932->>server:+BIND portal='', name='', num_formats=0, formats=, num_params=0, params=
|
||||
213070643360932->>server:+DESCRIBE kind='P', name=''
|
||||
213070643360932->>server:+EXECUTE name='', nb_rows=0
|
||||
213070643360932->>server:+SYNC
|
||||
server-->>213070643360932:-PARSE COMPLETE
|
||||
server-->>213070643360932:-BIND COMPLETE
|
||||
server-->>213070643360932:-ROW DESCRIPTION: num_fields=1 ---[Field 01]--- name='version' type=25 type_len=65535 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
server-->>213070643360932:-DATA ROW num_values=1 ---[Value 0001]--- length=112 value='PostgreSQL 13.3 (Debian 13.3-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit'
|
||||
server-->>213070643360932:-COMMAND COMPLETE command='SELECT 1'
|
||||
server-->>213070643360932:-READY FOR QUERY type=<IDLE>
|
||||
213070643360932->>server:+DISCONNECT
|
||||
```
|
||||
|
|
@ -17,6 +17,7 @@ package message
|
|||
import (
|
||||
"bytes"
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// Type is a byte indicating the type of a Postgres message.
|
||||
|
|
@ -29,11 +30,11 @@ const (
|
|||
// TypeReadyForQuery is a message used to indicate that the server is ready for another query.
|
||||
TypeReadyForQuery Type = 'Z'
|
||||
|
||||
// TypeCommandComplete is a message used to indicate that a query has completed.
|
||||
// TypeCommandComplete is a Backend message used to indicate that a query has completed.
|
||||
TypeCommandComplete Type = 'C'
|
||||
|
||||
// TypeError is an error message.
|
||||
TypeError Type = 'E'
|
||||
// TypeClos is a message used to indicate that a query has completed. Frontend
|
||||
TypeClose Type = 'C'
|
||||
|
||||
// TypeRowDescription is a message indicating the column types of the result rows from a query.
|
||||
TypeRowDescription Type = 'T'
|
||||
|
|
@ -52,6 +53,20 @@ const (
|
|||
|
||||
// TypeBackendKeyData contains a cancellation key for the client to use later.
|
||||
TypeBackendKeyData Type = 'K'
|
||||
|
||||
TypeParse Type = 'P'
|
||||
TypeParseComplete Type = '1'
|
||||
|
||||
TypeBind Type = 'B'
|
||||
TypeBindComplete Type = '2'
|
||||
|
||||
TypeExecute Type = 'E' // Frontend
|
||||
TypeError Type = 'E' // Backend
|
||||
TypeSync Type = 'S' // Frontend
|
||||
TypeParameterStatus Type = 'S' // Backend
|
||||
TypeDescribe Type = 'D' // Frontend
|
||||
TypeNoData Type = 'n' // backend
|
||||
TypeEmptyQueryResponse Type = 'I' // backend
|
||||
)
|
||||
|
||||
// AuthenticationOK is a message indicating that authentication has completed.
|
||||
|
|
@ -59,6 +74,22 @@ var AuthenticationOK = Message{
|
|||
Type: TypeAuthentication,
|
||||
Data: []byte{0, 0, 0, 0},
|
||||
}
|
||||
var ParseOK = Message{
|
||||
Type: TypeParseComplete,
|
||||
Data: []byte{},
|
||||
}
|
||||
var BindComplete = Message{
|
||||
Type: TypeBindComplete,
|
||||
Data: []byte{},
|
||||
}
|
||||
var NoData = Message{
|
||||
Type: TypeNoData,
|
||||
Data: []byte{},
|
||||
}
|
||||
var EmptyQueryResponse = Message{
|
||||
Type: TypeEmptyQueryResponse,
|
||||
Data: []byte{},
|
||||
}
|
||||
|
||||
// Message is a Postgres message value.
|
||||
type Message struct {
|
||||
|
|
@ -66,6 +97,49 @@ type Message struct {
|
|||
Data []byte
|
||||
}
|
||||
|
||||
//debug tools
|
||||
func viewString(b []byte) string {
|
||||
r := []rune(string(b))
|
||||
for i := range r {
|
||||
if r[i] < 32 || r[i] > 126 {
|
||||
r[i] = '.'
|
||||
}
|
||||
}
|
||||
return string(r)
|
||||
}
|
||||
func min(a, b int) int {
|
||||
if a < b {
|
||||
return a
|
||||
}
|
||||
return b
|
||||
}
|
||||
func (m *Message) Dump(prefix string) {
|
||||
n := len(m.Data)
|
||||
rowcount := 0
|
||||
stop := (n / 8) * 8
|
||||
k := 0
|
||||
fmt.Printf("\n %s type: '%c'\n", prefix, m.Type)
|
||||
for i := 0; i <= stop; i += 8 {
|
||||
k++
|
||||
if i+8 < n {
|
||||
rowcount = 8
|
||||
} else {
|
||||
rowcount = min(k*8, n) % 8
|
||||
}
|
||||
|
||||
fmt.Printf("pos %02d hex: ", i)
|
||||
for j := 0; j < rowcount; j++ {
|
||||
fmt.Printf("%02x ", m.Data[i+j])
|
||||
}
|
||||
for j := rowcount; j < 8; j++ {
|
||||
fmt.Printf(" ")
|
||||
}
|
||||
fmt.Printf(" '%s'\n", viewString(m.Data[i:(i+rowcount)]))
|
||||
}
|
||||
}
|
||||
|
||||
//endTools
|
||||
|
||||
// TransactionStatus is the current transaction state.
|
||||
type TransactionStatus byte
|
||||
|
||||
|
|
@ -98,6 +172,14 @@ func (e *Encoder) i32(i int32) error {
|
|||
return err
|
||||
}
|
||||
|
||||
/* removed for linter now
|
||||
func (e *Encoder) u32(i uint32) error {
|
||||
binary.BigEndian.PutUint32(e.scratch[:], i)
|
||||
_, err := e.buf.Write(e.scratch[:])
|
||||
return err
|
||||
}
|
||||
*/
|
||||
|
||||
// ReadyForQuery encodes a "ready for query" message.
|
||||
func (e *Encoder) ReadyForQuery(status TransactionStatus) (Message, error) {
|
||||
e.buf.Reset()
|
||||
|
|
@ -149,6 +231,9 @@ const (
|
|||
|
||||
// NoticeFieldHint is a suggestion of how to address the issue.
|
||||
NoticeFieldHint NoticeFieldType = 'H'
|
||||
|
||||
// NoticeFieldHint the SQLSTATE code for the error (see Appendix A). Not localizable. Always present.
|
||||
NoticeFieldCode NoticeFieldType = 'C'
|
||||
)
|
||||
|
||||
// NoticeField is a field in an error or notice.
|
||||
|
|
@ -365,3 +450,95 @@ func (e *Encoder) BackendKeyData(pid, key int32) (Message, error) {
|
|||
Data: e.buf.Bytes(),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (e *Encoder) ParameterStatus(param, value string) (Message, error) {
|
||||
e.buf.Reset()
|
||||
//param + NULL + value+ NULL
|
||||
_, err := e.buf.WriteString(param)
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
err = e.buf.WriteByte(0)
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
_, err = e.buf.WriteString(value)
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
err = e.buf.WriteByte(0)
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
return Message{
|
||||
Type: TypeParameterStatus,
|
||||
Data: e.buf.Bytes(),
|
||||
}, nil
|
||||
}
|
||||
|
||||
type SimpleColumn struct {
|
||||
Name string
|
||||
Typeid int32
|
||||
Typelen int16
|
||||
}
|
||||
|
||||
func (e *Encoder) EncodeColumn(name string, typeid int32, typelen int16) (Message, error) {
|
||||
return e.EncodeColumns(SimpleColumn{
|
||||
Name: name,
|
||||
Typeid: typeid,
|
||||
Typelen: typelen,
|
||||
})
|
||||
}
|
||||
func (e *Encoder) EncodeColumns(cols ...SimpleColumn) (Message, error) {
|
||||
|
||||
e.buf.Reset()
|
||||
err := e.i16(int16(len(cols))) // number of columns in result
|
||||
if err != nil {
|
||||
return Message{}, nil
|
||||
}
|
||||
for _, col := range cols {
|
||||
|
||||
_, err = e.buf.WriteString(col.Name) // column name
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
err = e.buf.WriteByte(0) //null terminate
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
|
||||
err = e.i32(0) //tabel id
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
|
||||
err = e.i16(0) //field id(attnum)
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
|
||||
err = e.i32(col.Typeid) //type_id
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
|
||||
err = e.i16(col.Typelen) //type_len
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
|
||||
err = e.i32(-1) //type_mod
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
|
||||
err = e.i16(0) //format 0 text 1 binary
|
||||
if err != nil {
|
||||
return Message{}, err
|
||||
}
|
||||
}
|
||||
return Message{
|
||||
Type: TypeRowDescription,
|
||||
Data: e.buf.Bytes(),
|
||||
}, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,9 @@ type HandlerFunc func(context.Context, pg.QueryResultWriter, pg.Query) error
|
|||
func (h HandlerFunc) HandleQuery(ctx context.Context, w pg.QueryResultWriter, q pg.Query) error {
|
||||
return h(ctx, w, q)
|
||||
}
|
||||
func (h HandlerFunc) HandleSchema(ctx context.Context, portal *pg.Portal) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
var _ pg.QueryHandler = HandlerFunc(nil)
|
||||
|
||||
|
|
|
|||
539
pg/protocol.go
539
pg/protocol.go
|
|
@ -25,12 +25,15 @@ import (
|
|||
"io"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"regexp"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/molecula/featurebase/v2/pg/message"
|
||||
"github.com/molecula/featurebase/v2/sql"
|
||||
"github.com/pkg/errors"
|
||||
"vitess.io/vitess/go/vt/sqlparser"
|
||||
)
|
||||
|
||||
// Protocol is a Postgres protocol version.
|
||||
|
|
@ -48,6 +51,9 @@ const (
|
|||
|
||||
// ProtocolSupported is the main protocol version supported by this package.
|
||||
ProtocolSupported Protocol = ProtocolPostgres30
|
||||
|
||||
// PgServerVersion is the latest version of postgres that we claim to support.
|
||||
PgServerVersion = "13.0.0"
|
||||
)
|
||||
|
||||
// Major returns the major revision of the protocol.
|
||||
|
|
@ -233,6 +239,376 @@ func (s *Server) handleCancel(ctx context.Context, conn net.Conn, data []byte) e
|
|||
|
||||
return nil
|
||||
}
|
||||
func (s *Server) SendParameterStatus(w *message.WireWriter, param, value string, encoder *message.Encoder) error {
|
||||
msg, err := encoder.ParameterStatus(param, value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = w.WriteMessage(msg)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type Result struct {
|
||||
}
|
||||
type PgType byte
|
||||
|
||||
// Constants used to indicated query interception
|
||||
// Only pgPassOn is allowed to be processed in Featurebase query handling
|
||||
const (
|
||||
pgPassOn PgType = 'x'
|
||||
pgBackendPid PgType = 'a'
|
||||
pgVersion PgType = 'b'
|
||||
pgCountType PgType = 'c'
|
||||
pgQueryTime PgType = 'd'
|
||||
pgTerminate PgType = 'e'
|
||||
pgEmpty PgType = 'f'
|
||||
pgSetApplication PgType = 'g'
|
||||
pgSelect1 PgType = 'h'
|
||||
pgSchema PgType = 'i'
|
||||
pgBegin PgType = 'j'
|
||||
)
|
||||
|
||||
type Portal struct {
|
||||
Name string
|
||||
Writer *message.WireWriter
|
||||
commands []message.Message
|
||||
Encoder *message.Encoder
|
||||
mapper *sql.Mapper
|
||||
sql string
|
||||
pgspecial PgType
|
||||
pid int32
|
||||
queryStart time.Time
|
||||
server *Server
|
||||
cancelNotify <-chan struct{}
|
||||
}
|
||||
|
||||
func (p *Portal) Reset() {
|
||||
p.Name = ""
|
||||
p.sql = ""
|
||||
p.pgspecial = pgPassOn
|
||||
p.commands = p.commands[:0]
|
||||
}
|
||||
|
||||
func (p *Portal) Bind() {
|
||||
p.Add(message.BindComplete)
|
||||
}
|
||||
|
||||
var lookPQL = regexp.MustCompile(`\[.*\].*\)\z`)
|
||||
|
||||
func (p *Portal) Parse(data []byte) {
|
||||
p.queryStart = time.Now()
|
||||
queryStr := string(bytes.Trim(data, "\x00"))
|
||||
foundPQL := lookPQL.FindStringSubmatch(queryStr)
|
||||
if len(foundPQL) > 0 {
|
||||
|
||||
p.sql = foundPQL[0]
|
||||
p.Name = "PQL"
|
||||
p.pgspecial = pgPassOn
|
||||
p.Add(message.ParseOK)
|
||||
return
|
||||
}
|
||||
if strings.Contains(queryStr, "EXTRACT") {
|
||||
// had to add this hack because the vitis parser doesn't handle...
|
||||
/*
|
||||
SELECT pid as id,
|
||||
query as stmt,
|
||||
EXTRACT(seconds from query_start - NOW()) as elapsed_time
|
||||
FROM pg_stat_activity
|
||||
WHERE usename='docker'`
|
||||
*/
|
||||
p.pgspecial = pgQueryTime
|
||||
p.Name = "SELECT"
|
||||
p.sql = queryStr
|
||||
p.Add(message.ParseOK)
|
||||
return
|
||||
}
|
||||
|
||||
if len(queryStr) > 2 {
|
||||
|
||||
query, err := p.mapper.MapSQL(queryStr)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if strings.Contains(strings.ToLower(query.SQL), "select 1") {
|
||||
p.pgspecial = pgSelect1
|
||||
p.Name = "SELECT"
|
||||
} else {
|
||||
switch query.SQLType {
|
||||
case sql.SQLTypeSet:
|
||||
p.Name = "SET"
|
||||
set := query.Statement.(*sqlparser.Set)
|
||||
p.pgspecial = 0
|
||||
for _, item := range set.Exprs {
|
||||
if item.Name.String() == "application_name" {
|
||||
switch item.Expr.(type) {
|
||||
case *sqlparser.SQLVal:
|
||||
p.pgspecial = pgSetApplication
|
||||
}
|
||||
}
|
||||
}
|
||||
case sql.SQLTypeSelect:
|
||||
p.Name = "SELECT"
|
||||
p.pgspecial = pgPassOn
|
||||
stmt := query.Statement.(*sqlparser.Select)
|
||||
for _, item := range stmt.SelectExprs {
|
||||
switch expr := item.(type) {
|
||||
case *sqlparser.AliasedExpr:
|
||||
switch colExpr := expr.Expr.(type) {
|
||||
case *sqlparser.FuncExpr:
|
||||
funcName := strings.ToLower(colExpr.Name.String())
|
||||
switch funcName {
|
||||
case "pg_backend_pid":
|
||||
//SELECT pg_backend_pid()
|
||||
p.pgspecial = pgBackendPid
|
||||
case "pg_terminate_backend":
|
||||
//select pg_terminate_backend(100)
|
||||
p.pgspecial = pgTerminate
|
||||
case "version":
|
||||
//SELECT VERSION() AS version
|
||||
p.pgspecial = pgVersion
|
||||
}
|
||||
//need to return the pid from the cancelation object
|
||||
//add row description object
|
||||
//add data row for item
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
for _, item := range stmt.From {
|
||||
switch from := item.(type) {
|
||||
case *sqlparser.AliasedTableExpr:
|
||||
tableName := from.Expr.(sqlparser.TableName).ToViewName().Name.String()
|
||||
switch tableName {
|
||||
case "pg_type":
|
||||
p.pgspecial = pgCountType
|
||||
case "pg_stat_activity":
|
||||
p.pgspecial = pgQueryTime
|
||||
case "tables":
|
||||
p.pgspecial = pgSchema
|
||||
}
|
||||
}
|
||||
}
|
||||
p.sql = queryStr
|
||||
case sql.SQLTypeBegin:
|
||||
// Ignore BEGIN
|
||||
p.pgspecial = pgBegin
|
||||
case sql.SQLTypeShow:
|
||||
p.Name = "SHOW"
|
||||
p.pgspecial = pgPassOn
|
||||
p.sql = queryStr
|
||||
}
|
||||
}
|
||||
} else {
|
||||
p.pgspecial = pgEmpty
|
||||
}
|
||||
p.Add(message.ParseOK)
|
||||
}
|
||||
func (p *Portal) Describe() {
|
||||
// Placeholder should we need to handle the Decribe request
|
||||
}
|
||||
|
||||
func (p *Portal) Execute() (shouldTerminate bool, queryReady bool, err error) {
|
||||
queryReady = true
|
||||
switch p.pgspecial {
|
||||
case pgBackendPid:
|
||||
rowDescription, e := p.Encoder.EncodeColumn("pg_backend_pid", int32(23), 4)
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
p.Add(rowDescription)
|
||||
pid := fmt.Sprintf("%v", p.pid)
|
||||
dataRow, _ := p.Encoder.TextRow(pid)
|
||||
p.Add(dataRow)
|
||||
//needs data row with cancel token
|
||||
case pgVersion:
|
||||
rowDescription, e := p.Encoder.EncodeColumn("version", int32(25), -1)
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
p.Add(rowDescription)
|
||||
dataRow, _ := p.Encoder.TextRow("PostgresSQL 13.0 (molecula)")
|
||||
p.Add(dataRow)
|
||||
case pgSelect1:
|
||||
rowDescription, e := p.Encoder.EncodeColumn("?column?", int32(23), 4)
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
p.Add(rowDescription)
|
||||
dataRow, _ := p.Encoder.TextRow("1")
|
||||
p.Add(dataRow)
|
||||
case pgCountType:
|
||||
//need to block
|
||||
<-p.server.lookerChannel
|
||||
rowDescription, e := p.Encoder.EncodeColumn("count", int32(20), 8)
|
||||
if err != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
p.Add(rowDescription)
|
||||
errorResponse, _ := p.Encoder.Error(
|
||||
message.NoticeField{
|
||||
Type: message.NoticeFieldSeverity,
|
||||
Data: "FATAL",
|
||||
},
|
||||
message.NoticeField{
|
||||
Type: message.NoticeFieldMessage,
|
||||
Data: "terminating connection due to administrator command",
|
||||
},
|
||||
message.NoticeField{
|
||||
Type: message.NoticeFieldCode,
|
||||
Data: "57P01",
|
||||
},
|
||||
)
|
||||
p.Add(errorResponse)
|
||||
e = p.Sync() //send and Reset
|
||||
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
return true, queryReady, nil
|
||||
case pgQueryTime:
|
||||
// need to return something so that the id can be queried
|
||||
//need to return SELECT pid as id, query as stmt, EXTRACT(seconds from query_start - NOW()) as elapsed_time FROM pg_stat_activity
|
||||
//seems like we need a map of pids to querys
|
||||
e := p.server.dumpPortalsTo(p)
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
|
||||
case pgTerminate:
|
||||
//note just have 1 lock that blocks all who try to count the activities
|
||||
//TODO (twg) lock this
|
||||
close(p.server.lookerChannel) //release all the other blockers and allow them to terminate
|
||||
p.server.lookerChannel = make(chan struct{}) //create a new one just in case
|
||||
// i think it needs to return boolean true
|
||||
rowDescription, e := p.Encoder.EncodeColumn("pg_terminate_backend", int32(16), 1)
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
p.Add(rowDescription)
|
||||
dataRow, _ := p.Encoder.TextRow("t")
|
||||
p.Add(dataRow)
|
||||
commandComplete, e := p.Encoder.CommandComplete("SELECT 1")
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
p.Add(commandComplete)
|
||||
e = p.Sync()
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
return false, queryReady, nil
|
||||
case pgEmpty:
|
||||
p.Add(message.NoData)
|
||||
p.Add(message.EmptyQueryResponse)
|
||||
e := p.Sync()
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
queryReady = true
|
||||
return false, queryReady, nil
|
||||
case pgSetApplication:
|
||||
//needs to add/send status
|
||||
msg, e := p.Encoder.ParameterStatus("application_name", "PostgreSQL JDBC Driver")
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
p.Add(msg)
|
||||
case pgSchema:
|
||||
parts := []message.SimpleColumn{
|
||||
{
|
||||
Name: "table_schema",
|
||||
Typeid: int32(19),
|
||||
Typelen: 64,
|
||||
},
|
||||
{
|
||||
Name: "table_name",
|
||||
Typeid: int32(19),
|
||||
Typelen: 64,
|
||||
},
|
||||
}
|
||||
rowDescription, e := p.Encoder.EncodeColumns(parts...)
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
p.Add(rowDescription)
|
||||
e = p.HandleSchema()
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
|
||||
case pgPassOn:
|
||||
query := SimpleQuery(p.sql)
|
||||
e := p.server.handleQuery(p, query, p.cancelNotify)
|
||||
if e != nil {
|
||||
err = e
|
||||
return
|
||||
}
|
||||
return
|
||||
|
||||
case pgBegin:
|
||||
p.Name = "BEGIN"
|
||||
}
|
||||
|
||||
//maybe add in the number of items in select clause
|
||||
if len(p.Name) > 0 { //only send command complete for those that have names
|
||||
message, _ := p.Encoder.CommandComplete(p.Name)
|
||||
p.Add(message)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// handleStandard handles a connection in the standard postgres wire protocol.
|
||||
func (p *Portal) Sync() error {
|
||||
for _, m := range p.commands {
|
||||
err := p.Writer.WriteMessage(m)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
p.Writer.Flush()
|
||||
p.Reset()
|
||||
return nil
|
||||
}
|
||||
func (p *Portal) Add(m message.Message) {
|
||||
cp := message.Message{Type: m.Type, Data: make([]byte, len(m.Data))}
|
||||
copy(cp.Data, m.Data)
|
||||
p.commands = append(p.commands, cp)
|
||||
}
|
||||
|
||||
func (p *Portal) DumpComands() {
|
||||
|
||||
for _, m := range p.commands {
|
||||
m.Dump("DUMPING:")
|
||||
}
|
||||
}
|
||||
func (p *Portal) HandleSchema() error {
|
||||
return p.server.QueryHandler.HandleSchema(context.Background(), p)
|
||||
}
|
||||
|
||||
func (p *Portal) WriteMessage(m message.Message) error {
|
||||
p.Add(m)
|
||||
return nil
|
||||
}
|
||||
func (p *Portal) Flush() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// handleStandard handles a connection in the standard postgres wire protocol.
|
||||
// The client is responsible for closing the connection when this finishes.
|
||||
|
|
@ -255,7 +631,6 @@ func (s *Server) handleStandard(ctx context.Context, proto Protocol, conn net.Co
|
|||
if err != nil {
|
||||
return errors.Wrap(err, "parsing parameters")
|
||||
}
|
||||
|
||||
if user, ok := params["user"]; ok {
|
||||
// Log the connection.
|
||||
s.Logger.Debugf("new postgres connection from user %q at %v", user, conn.RemoteAddr())
|
||||
|
|
@ -265,7 +640,6 @@ func (s *Server) handleStandard(ctx context.Context, proto Protocol, conn net.Co
|
|||
}
|
||||
|
||||
// Set up message input and output.
|
||||
|
||||
// Set up a reader that will preempt the connection when the context is canceled.
|
||||
ir := idleReader{
|
||||
conn: conn,
|
||||
|
|
@ -322,8 +696,56 @@ func (s *Server) handleStandard(ctx context.Context, proto Protocol, conn net.Co
|
|||
if err != nil {
|
||||
return errors.Wrap(err, "sending authentication confirmation")
|
||||
}
|
||||
err = s.SendParameterStatus(w, "application_name", "", &encoder)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status server version")
|
||||
}
|
||||
err = s.SendParameterStatus(w, "client_encoding", "UTF8", &encoder)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status server version")
|
||||
}
|
||||
err = s.SendParameterStatus(w, "DateStyle", "ISO, MDY", &encoder)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status server version")
|
||||
}
|
||||
err = s.SendParameterStatus(w, "integer_datetimes", "on", &encoder)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status server version")
|
||||
}
|
||||
err = s.SendParameterStatus(w, "IntervalStyle", "postgres", &encoder)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status server version")
|
||||
}
|
||||
err = s.SendParameterStatus(w, "is_superuser", "on", &encoder)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status server version")
|
||||
}
|
||||
err = s.SendParameterStatus(w, "server_encoding", "UTF8", &encoder)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status server version")
|
||||
}
|
||||
err = s.SendParameterStatus(w, "server_version", PgServerVersion, &encoder)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status server version")
|
||||
}
|
||||
/*
|
||||
-PARAMETER STATUS name='TimeZone', value='GMT'
|
||||
*/
|
||||
err = s.SendParameterStatus(w, "session_authorization", "docker", &encoder) //TODO(twg) figure out valid values here
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status server version")
|
||||
}
|
||||
err = s.SendParameterStatus(w, "standard_conforming_strings", "on", &encoder) //TODO(twg) figure out valid values here
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status server version")
|
||||
}
|
||||
err = s.SendParameterStatus(w, "TimeZone", "GMT", &encoder) //TODO(twg) figure out valid values here
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending parameter status server version")
|
||||
}
|
||||
|
||||
var cancelNotify <-chan struct{}
|
||||
var pid int32
|
||||
if s.CancellationManager != nil {
|
||||
notify, cancel, token, err := s.CancellationManager.Token()
|
||||
if err != nil {
|
||||
|
|
@ -332,6 +754,7 @@ func (s *Server) handleStandard(ctx context.Context, proto Protocol, conn net.Co
|
|||
defer cancel()
|
||||
|
||||
msg, err := encoder.BackendKeyData(token.PID, token.Key)
|
||||
pid = token.PID
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "encoding cancellation key data")
|
||||
}
|
||||
|
|
@ -343,11 +766,23 @@ func (s *Server) handleStandard(ctx context.Context, proto Protocol, conn net.Co
|
|||
}
|
||||
|
||||
var queryReady bool
|
||||
portal := &Portal{
|
||||
Writer: w,
|
||||
Encoder: &encoder,
|
||||
commands: make([]message.Message, 0),
|
||||
mapper: sql.NewMapper(),
|
||||
pid: pid,
|
||||
server: s,
|
||||
cancelNotify: cancelNotify,
|
||||
}
|
||||
s.addPortal(portal)
|
||||
defer s.removePortal(portal)
|
||||
//mapper.Logger = logger
|
||||
for {
|
||||
if !queryReady {
|
||||
// Indicate that we are ready for a query.
|
||||
// TODO: provide a valid transaction state.
|
||||
msg, err := encoder.ReadyForQuery(message.TransactionStatusActive)
|
||||
portal.sql = ""
|
||||
msg, err := encoder.ReadyForQuery(message.TransactionStatusIdle)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "sending query ready status")
|
||||
}
|
||||
|
|
@ -373,6 +808,7 @@ func (s *Server) handleStandard(ctx context.Context, proto Protocol, conn net.Co
|
|||
// However, it seems that no clients completely follow the spec, so we shouldn't rely on anything that isn't entirely straightforward.
|
||||
s.Logger.Debugf("postgres client sent additional data without waiting for completion")
|
||||
}
|
||||
queryReady = true
|
||||
}
|
||||
|
||||
// Read the next packet.
|
||||
|
|
@ -406,12 +842,27 @@ func (s *Server) handleStandard(ctx context.Context, proto Protocol, conn net.Co
|
|||
// We are done.
|
||||
return w.Flush()
|
||||
|
||||
case message.TypeSimpleQuery:
|
||||
// Execute a simple query.
|
||||
|
||||
case message.TypeParse:
|
||||
portal.Parse(msg.Data)
|
||||
case message.TypeBind:
|
||||
portal.Bind()
|
||||
case message.TypeExecute:
|
||||
term, qr, err := portal.Execute()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if term {
|
||||
return w.Flush()
|
||||
}
|
||||
queryReady = qr
|
||||
case message.TypeSync:
|
||||
err := portal.Sync()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
queryReady = false
|
||||
case message.TypeSimpleQuery:
|
||||
queryReady = false
|
||||
|
||||
// Parse the query message (a null-terminated string).
|
||||
query := SimpleQuery(strings.TrimSuffix(string(msg.Data), "\x00"))
|
||||
|
||||
// Execute the query.
|
||||
|
|
@ -419,7 +870,10 @@ func (s *Server) handleStandard(ctx context.Context, proto Protocol, conn net.Co
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
case message.TypeDescribe:
|
||||
portal.Describe()
|
||||
case message.TypeClose:
|
||||
return w.Flush()
|
||||
default:
|
||||
// The message is not supported yet.
|
||||
// Send an error.
|
||||
|
|
@ -452,6 +906,70 @@ func (s *Server) handleStandard(ctx context.Context, proto Protocol, conn net.Co
|
|||
}
|
||||
}
|
||||
}
|
||||
func (s *Server) addPortal(p *Portal) {
|
||||
s.mu.Lock()
|
||||
defer s.mu.Unlock()
|
||||
s.portals = append(s.portals, p)
|
||||
}
|
||||
func (s *Server) removePortal(p *Portal) {
|
||||
s.mu.Lock()
|
||||
defer s.mu.Unlock()
|
||||
for i, portal := range s.portals {
|
||||
if portal.pid == p.pid {
|
||||
//remove i
|
||||
s.portals = append(s.portals[:i], s.portals[i+1:]...)
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
func (s *Server) dumpPortalsTo(p *Portal) error {
|
||||
s.mu.Lock()
|
||||
defer s.mu.Unlock()
|
||||
//need to add the descrition for the 3 fields
|
||||
// <-:-ROW DESCRIPTION: num_fields=3
|
||||
//---[Field 01]--- name='id' type=23 type_len=4 type_mod=4294967295 relid=12250 attnum=3 format=0
|
||||
//---[Field 02]--- name='stmt' type=25 type_len=65535 type_mod=4294967295 relid=12250 attnum=20 format=0 -
|
||||
//--[Field 03]--- name='elapsed_time' type=701 type_len=8 type_mod=4294967295 relid=0 attnum=0 format=0
|
||||
parts := []message.SimpleColumn{
|
||||
{
|
||||
Name: "id",
|
||||
Typeid: int32(23),
|
||||
Typelen: 4,
|
||||
},
|
||||
{
|
||||
Name: "stmt",
|
||||
Typeid: int32(25),
|
||||
Typelen: -1,
|
||||
},
|
||||
{
|
||||
Name: "elapsed_time",
|
||||
Typeid: int32(701),
|
||||
Typelen: 8,
|
||||
},
|
||||
}
|
||||
rowDescription, err := p.Encoder.EncodeColumns(parts...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
p.Add(rowDescription)
|
||||
|
||||
for _, portal := range s.portals {
|
||||
dataRow, err := p.Encoder.TextRow(
|
||||
fmt.Sprintf("%v", portal.pid),
|
||||
portal.sql,
|
||||
fmt.Sprintf("%v", time.Since(portal.queryStart).Seconds()))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
//if sql == "" need to put in a null record
|
||||
//need to add the dararow
|
||||
//also need to figure out null types
|
||||
p.Add(dataRow)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// handleQuery processes a single query on a connection.
|
||||
func (s *Server) handleQuery(w message.Writer, query Query, cancelNotify <-chan struct{}) error {
|
||||
|
|
@ -497,7 +1015,6 @@ func (s *Server) handleQuery(w message.Writer, query Query, cancelNotify <-chan
|
|||
te: s.TypeEngine,
|
||||
tag: "SELECT",
|
||||
}
|
||||
|
||||
// Dispatch the query handler.
|
||||
qerr := s.QueryHandler.HandleQuery(ctx, qwriter, query)
|
||||
if qerr != nil {
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ type QueryResultWriter interface {
|
|||
type QueryHandler interface {
|
||||
// HandleQuery executes a query and writes the results back.
|
||||
HandleQuery(context.Context, QueryResultWriter, Query) error
|
||||
HandleSchema(context.Context, *Portal) error
|
||||
}
|
||||
|
||||
// queryResultWriter implements QueryResultWrtiter over postgres wire protocol.
|
||||
|
|
|
|||
|
|
@ -59,6 +59,9 @@ type Server struct {
|
|||
// CancellationManager is the cancellation manager to use.
|
||||
// If this is not set, no cancellations will be applied.
|
||||
CancellationManager CancellationManager
|
||||
lookerChannel chan struct{}
|
||||
mu sync.Mutex
|
||||
portals []*Portal
|
||||
}
|
||||
|
||||
// ServeConn serves a single connection.
|
||||
|
|
@ -79,6 +82,8 @@ func (s *Server) Serve(ctx context.Context, l net.Listener) (err error) {
|
|||
err = cerr
|
||||
}
|
||||
}(ctx)
|
||||
// TODO (twg) added for looker
|
||||
s.lookerChannel = make(chan struct{})
|
||||
|
||||
// Wait for the listener to be closed and all connections to shut down.
|
||||
var wg sync.WaitGroup
|
||||
|
|
|
|||
|
|
@ -645,6 +645,11 @@ func (rs *StmtRows) Columns() []*StmtColumn {
|
|||
return rs.node.Columns()
|
||||
}
|
||||
|
||||
/*
|
||||
func (rs *StmtRows) Row() int64 {
|
||||
return rs.node.Row()[0].(int64)
|
||||
}
|
||||
*/
|
||||
func (rs *StmtRows) Next() bool {
|
||||
if rs.err != nil {
|
||||
return false
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ import (
|
|||
"github.com/molecula/featurebase/v2/stats"
|
||||
"github.com/molecula/featurebase/v2/storage"
|
||||
"github.com/molecula/featurebase/v2/topology"
|
||||
"github.com/molecula/featurebase/v2/vprint"
|
||||
"github.com/pkg/errors"
|
||||
"golang.org/x/sync/errgroup"
|
||||
|
||||
|
|
@ -1354,6 +1355,7 @@ func (s *Server) PlanSQL(ctx context.Context, q string) (*Stmt, error) {
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
vprint.VV("PLanning SQL: (%v)", q)
|
||||
return NewPlanner(s.executor).PlanStatement(ctx, st)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -200,6 +200,9 @@ type Config struct {
|
|||
// Setting this to 0 disables the limit.
|
||||
// This mostly exists because other DBs seem to have it.
|
||||
ConnectionLimit uint16 `toml:"max-connections"`
|
||||
// SqlVersion is which type of sqlhandling to be applied.
|
||||
// The constant SqlV2 can be used to try the new experimental Molecula SQL handling
|
||||
SqlVersion uint16 `toml:"sql-version"`
|
||||
} `toml:"postgres"`
|
||||
|
||||
// Storage.Backend determines which Tx implementation the holder/Index will
|
||||
|
|
|
|||
163
server/pg.go
163
server/pg.go
|
|
@ -25,9 +25,11 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/molecula/featurebase/v2"
|
||||
pilosa "github.com/molecula/featurebase/v2"
|
||||
"github.com/molecula/featurebase/v2/logger"
|
||||
"github.com/molecula/featurebase/v2/pg"
|
||||
|
||||
//"github.com/molecula/featurebase/v2/pg"
|
||||
"github.com/molecula/featurebase/v2/pql"
|
||||
pb "github.com/molecula/featurebase/v2/proto"
|
||||
|
||||
|
|
@ -43,14 +45,20 @@ type PostgresServer struct {
|
|||
s pg.Server
|
||||
stop context.CancelFunc
|
||||
}
|
||||
type SqlVersion uint16
|
||||
|
||||
const (
|
||||
SqlV1 SqlVersion = 0
|
||||
SqlV2 SqlVersion = 2
|
||||
)
|
||||
|
||||
// NewPostgresServer creates a postgres server.
|
||||
func NewPostgresServer(api *pilosa.API, logger logger.Logger, tls *tls.Config) *PostgresServer {
|
||||
func NewPostgresServer(api *pilosa.API, logger logger.Logger, tls *tls.Config, sqlVersion SqlVersion) *PostgresServer {
|
||||
return &PostgresServer{
|
||||
api: api,
|
||||
logger: logger,
|
||||
s: pg.Server{
|
||||
QueryHandler: NewPostgresHandler(api, logger),
|
||||
QueryHandler: NewPostgresHandler(api, logger, sqlVersion),
|
||||
TypeEngine: pg.PrimitiveTypeEngine{},
|
||||
StartupTimeout: 5 * time.Second,
|
||||
ReadTimeout: 10 * time.Second,
|
||||
|
|
@ -66,11 +74,12 @@ func NewPostgresServer(api *pilosa.API, logger logger.Logger, tls *tls.Config) *
|
|||
}
|
||||
|
||||
// NewPostgresHandler creates a postgres query handler wrapping the pilosa API.
|
||||
func NewPostgresHandler(api *pilosa.API, logger logger.Logger) pg.QueryHandler {
|
||||
return &queryDecodeHandler{
|
||||
child: &pilosaQueryHandler{
|
||||
api: api,
|
||||
logger: logger,
|
||||
func NewPostgresHandler(api *pilosa.API, logger logger.Logger, sqlVersion SqlVersion) pg.QueryHandler {
|
||||
return &QueryDecodeHandler{
|
||||
Child: &PilosaQueryHandler{
|
||||
Api: api,
|
||||
logger: logger,
|
||||
sqlVersion: sqlVersion,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
@ -107,6 +116,10 @@ func (s *PostgresServer) Close() error {
|
|||
return s.eg.Wait()
|
||||
}
|
||||
|
||||
func (s *PostgresServer) GetAPI() *pilosa.API {
|
||||
return s.api
|
||||
}
|
||||
|
||||
type pgPQLQuery struct {
|
||||
index string
|
||||
query string
|
||||
|
|
@ -135,9 +148,10 @@ func pgDecodePQL(str string) (q pg.Query, err error) {
|
|||
}, nil
|
||||
}
|
||||
|
||||
type pilosaQueryHandler struct {
|
||||
api *pilosa.API
|
||||
logger logger.Logger
|
||||
type PilosaQueryHandler struct {
|
||||
Api *pilosa.API
|
||||
logger logger.Logger
|
||||
sqlVersion SqlVersion
|
||||
}
|
||||
|
||||
func pgWriteRow(w pg.QueryResultWriter, row *pilosa.Row) error {
|
||||
|
|
@ -322,6 +336,78 @@ func pgWriteGroupCount(w pg.QueryResultWriter, counts *pilosa.GroupCounts) error
|
|||
return nil
|
||||
}
|
||||
|
||||
func pgWriteStmtRows(w pg.QueryResultWriter, rows *pilosa.StmtRows) error {
|
||||
//TODO(twg) writeHeader
|
||||
//TODO(twg) writeColumns
|
||||
first := true
|
||||
var data []string
|
||||
var err error
|
||||
for rows.Next() {
|
||||
if first {
|
||||
columns := rows.Columns()
|
||||
//TODO (twg) types:=rows.Types()
|
||||
headers := make([]pg.ColumnInfo, len(columns))
|
||||
for i, column := range columns {
|
||||
headers[i] = pg.ColumnInfo{
|
||||
Name: column.Name,
|
||||
Type: pg.TypeCharoid, //TODO(twg) types[i]
|
||||
}
|
||||
}
|
||||
err := w.WriteHeader(headers...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
data = make([]string, len(headers))
|
||||
first = false
|
||||
}
|
||||
result := make([]interface{}, len(rows.Columns()))
|
||||
// Create list of scan destination pointers.
|
||||
dsts := make([]interface{}, len(result))
|
||||
for i := range result {
|
||||
dsts[i] = &result[i]
|
||||
}
|
||||
|
||||
if err := rows.Scan(dsts...); err != nil {
|
||||
return err
|
||||
}
|
||||
//TODO(twg) conversion should be happening in Scan as described in https://pkg.go.dev/database/sql
|
||||
// ....
|
||||
// Scan also converts between string and numeric types, as long as no information
|
||||
// would be lost. While Scan stringifies all numbers scanned from numeric database columns into *string,
|
||||
// scans into numeric types are checked for overflow. For example, a float64 with value 300 or a string
|
||||
// with value "300" can scan into a uint16, but not into a uint8, though float64(255) or "255" can scan
|
||||
// into a uint8. One exception is that scans of some float64 numbers to strings may lose information when stringifying.
|
||||
// In general, scan floating point columns into *float64.
|
||||
// ...
|
||||
for i, col := range dsts {
|
||||
var v string
|
||||
switch col := col.(type) {
|
||||
case nil:
|
||||
v = "null"
|
||||
//
|
||||
//v = strconv.FormatUint(col.Uint64Val, 10)
|
||||
case *interface{}:
|
||||
v = fmt.Sprintf("%v", *col)
|
||||
default:
|
||||
return errors.Errorf("unable to process value of type %T", col)
|
||||
}
|
||||
|
||||
data[i] = v
|
||||
}
|
||||
|
||||
err = w.WriteRowText(data...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func pgWriteRowser(w pg.QueryResultWriter, result pb.ToRowser) error {
|
||||
var data []string
|
||||
return result.ToRows(func(row *pb.RowResponse) error {
|
||||
|
|
@ -395,6 +481,8 @@ func pgWriteResult(w pg.QueryResultWriter, result interface{}) error {
|
|||
return pgWriteGroupCount(w, result)
|
||||
case pb.ToRowser: // we should avoid protobuf where we can...
|
||||
return pgWriteRowser(w, result)
|
||||
case *pilosa.StmtRows: // we should avoid protobuf where we can...
|
||||
return pgWriteStmtRows(w, result)
|
||||
case uint64:
|
||||
err := w.WriteHeader(pg.ColumnInfo{
|
||||
Name: "count",
|
||||
|
|
@ -449,10 +537,10 @@ func pgWriteResult(w pg.QueryResultWriter, result interface{}) error {
|
|||
}
|
||||
}
|
||||
|
||||
func (pqh *pilosaQueryHandler) HandleQuery(ctx context.Context, w pg.QueryResultWriter, q pg.Query) error {
|
||||
func (pqh *PilosaQueryHandler) HandleQuery(ctx context.Context, w pg.QueryResultWriter, q pg.Query) error {
|
||||
switch q := q.(type) {
|
||||
case pgPQLQuery:
|
||||
resp, err := pqh.api.Query(ctx, &pilosa.QueryRequest{
|
||||
resp, err := pqh.Api.Query(ctx, &pilosa.QueryRequest{
|
||||
Index: q.index,
|
||||
Query: q.query,
|
||||
})
|
||||
|
|
@ -465,22 +553,36 @@ func (pqh *pilosaQueryHandler) HandleQuery(ctx context.Context, w pg.QueryResult
|
|||
return errors.Wrap(pgWriteResult(w, resp.Results[0]), "writing query result")
|
||||
|
||||
case pg.SimpleQuery:
|
||||
resp, err := execSQL(ctx, pqh.api, pqh.logger, string(q))
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "executing query")
|
||||
if pqh.sqlVersion == SqlV2 {
|
||||
stmt, err := pqh.Api.Plan(ctx, string(q))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
resp, err := stmt.QueryContext(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return errors.Wrap(pgWriteResult(w, resp), "writing sql2 query result")
|
||||
//version 2.0
|
||||
} else {
|
||||
//version 1.0
|
||||
resp, err := execSQL(ctx, pqh.Api, pqh.logger, string(q))
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "executing query")
|
||||
}
|
||||
return errors.Wrap(pgWriteResult(w, resp), "writing query result")
|
||||
}
|
||||
return errors.Wrap(pgWriteResult(w, resp), "writing query result")
|
||||
|
||||
default:
|
||||
return errors.Errorf("query type %T not yet supported (query: %s)", q, q)
|
||||
}
|
||||
}
|
||||
|
||||
type queryDecodeHandler struct {
|
||||
child pg.QueryHandler
|
||||
type QueryDecodeHandler struct {
|
||||
Child pg.QueryHandler
|
||||
}
|
||||
|
||||
func (qdh *queryDecodeHandler) HandleQuery(ctx context.Context, w pg.QueryResultWriter, q pg.Query) error {
|
||||
func (qdh *QueryDecodeHandler) HandleQuery(ctx context.Context, w pg.QueryResultWriter, q pg.Query) error {
|
||||
switch qv := q.(type) {
|
||||
case pg.SimpleQuery:
|
||||
if strings.HasPrefix(string(qv), "[") {
|
||||
|
|
@ -492,5 +594,24 @@ func (qdh *queryDecodeHandler) HandleQuery(ctx context.Context, w pg.QueryResult
|
|||
}
|
||||
}
|
||||
|
||||
return qdh.child.HandleQuery(ctx, w, q)
|
||||
return qdh.Child.HandleQuery(ctx, w, q)
|
||||
}
|
||||
|
||||
func (pqh *PilosaQueryHandler) HandleSchema(ctx context.Context, portal *pg.Portal) error {
|
||||
schema, err := pqh.Api.Schema(context.Background(), false)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, ii := range schema {
|
||||
dataRow, err := portal.Encoder.TextRow("featurebase", ii.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
portal.Add(dataRow)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (qdh *QueryDecodeHandler) HandleSchema(ctx context.Context, portal *pg.Portal) error {
|
||||
return qdh.Child.HandleSchema(ctx, portal)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/molecula/featurebase/v2"
|
||||
pilosa "github.com/molecula/featurebase/v2"
|
||||
"github.com/molecula/featurebase/v2/logger"
|
||||
"github.com/molecula/featurebase/v2/pg"
|
||||
"github.com/molecula/featurebase/v2/pg/pgtest"
|
||||
|
|
@ -33,7 +33,7 @@ func TestPostgresHandler(t *testing.T) {
|
|||
m := test.RunCommand(t)
|
||||
defer m.Close()
|
||||
|
||||
pgh := server.NewPostgresHandler(m.API, logger.NewLogfLogger(t))
|
||||
pgh := server.NewPostgresHandler(m.API, logger.NewLogfLogger(t), server.SqlV1)
|
||||
|
||||
m.MustCreateIndex(t, "i", pilosa.IndexOptions{TrackExistence: true})
|
||||
m.MustCreateField(t, "i", "set")
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ import (
|
|||
|
||||
"golang.org/x/sync/errgroup"
|
||||
|
||||
"github.com/molecula/featurebase/v2"
|
||||
pilosa "github.com/molecula/featurebase/v2"
|
||||
"github.com/molecula/featurebase/v2/boltdb"
|
||||
"github.com/molecula/featurebase/v2/encoding/proto"
|
||||
petcd "github.com/molecula/featurebase/v2/etcd"
|
||||
|
|
@ -265,7 +265,7 @@ func (m *Command) Start() (err error) {
|
|||
}
|
||||
tlsConf = conf
|
||||
}
|
||||
m.pgserver = NewPostgresServer(m.API, m.logger, tlsConf)
|
||||
m.pgserver = NewPostgresServer(m.API, m.logger, tlsConf, SqlVersion(m.Config.Postgres.SqlVersion))
|
||||
m.pgserver.s.StartupTimeout = time.Duration(m.Config.Postgres.StartupTimeout)
|
||||
m.pgserver.s.ReadTimeout = time.Duration(m.Config.Postgres.ReadTimeout)
|
||||
m.pgserver.s.WriteTimeout = time.Duration(m.Config.Postgres.WriteTimeout)
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ import (
|
|||
const (
|
||||
SQLTypeSelect = "select"
|
||||
SQLTypeShow = "show"
|
||||
SQLTypeSet = "set"
|
||||
SQLTypeBegin = "begin"
|
||||
SQLTypeEmpty = ""
|
||||
)
|
||||
|
||||
|
|
@ -101,6 +103,10 @@ func (m *Mapper) MapSQL(sql string) (*MappedSQL, error) {
|
|||
}
|
||||
case *sqlparser.Show:
|
||||
sqlType = SQLTypeShow
|
||||
case *sqlparser.Set:
|
||||
sqlType = SQLTypeSet
|
||||
case *sqlparser.Begin:
|
||||
sqlType = SQLTypeBegin
|
||||
}
|
||||
|
||||
return &MappedSQL{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue