Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-26727

REST API from CONNECT SE doesn't work on Docker

Details

    Description

      When using the query for REST API (note you need to have curl installed:

      MariaDB [test]> create table cusers3 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json;
      

      The result is:

      • when used locally (VM Ubuntu Focal, MariaDB 10.6) , the result is:
        Query OK, 0 rows affected, 1 warning (0.140 sec)

        MariaDB [test]> show grants for current_user;
        +-----------------------------------------------------------------------------------------------------------------------------------------+
        | Grants for anel@localhost                                                                                                               |
        +-----------------------------------------------------------------------------------------------------------------------------------------+
        | GRANT ALL PRIVILEGES ON *.* TO `anel`@`localhost` IDENTIFIED VIA mysql_native_password USING 'invalid' OR unix_socket WITH GRANT OPTION |
        +-----------------------------------------------------------------------------------------------------------------------------------------+
        1 row in set (0.000 sec)
         
        MariaDB [test]> show create table cusers3\G
        *************************** 1. row ***************************
               Table: cusers3
        Create Table: CREATE TABLE `cusers3` (
          `id` int(2) NOT NULL `JPATH`='$.id',
          `name` char(24) NOT NULL `JPATH`='$.name',
          `username` char(16) NOT NULL `JPATH`='$.username',
          `email` char(25) NOT NULL `JPATH`='$.email',
          `address_street` char(17) NOT NULL `JPATH`='$.address.street',
          `address_suite` char(9) NOT NULL `JPATH`='$.address.suite',
          `address_city` char(14) NOT NULL `JPATH`='$.address.city',
          `address_zipcode` char(10) NOT NULL `JPATH`='$.address.zipcode',
          `address_geo_lat` char(8) NOT NULL `JPATH`='$.address.geo.lat',
          `address_geo_lng` char(9) NOT NULL `JPATH`='$.address.geo.lng',
          `phone` char(21) NOT NULL `JPATH`='$.phone',
          `website` char(13) NOT NULL `JPATH`='$.website',
          `company_name` char(18) NOT NULL `JPATH`='$.company.name',
          `company_catchPhrase` char(40) NOT NULL `JPATH`='$.company.catchPhrase',
          `company_bs` char(36) NOT NULL `JPATH`='$.company.bs'
        ) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`='json' `HTTP`='http://jsonplaceholder.typicode.com/users'
        1 row in set (0.000 sec)
        

      • in Docker is an error

        MariaDB [web_users]> create table cusers3 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json;
        ERROR 1105 (HY000): Can only retrieve columns from object rows
         
        MariaDB [web_users]> select current_user;
        +----------------+
        | current_user   |
        +----------------+
        | root@localhost |
        +----------------+
         
        MariaDB [web_users]> show grants for current_user;
        +----------------------------------------------------------------------------------------------------------------------------------------+
        | Grants for root@localhost                                                                                                              |
        +----------------------------------------------------------------------------------------------------------------------------------------+
        | GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` IDENTIFIED BY PASSWORD '*EC427DF1E97E95DCB88D86BEDFE9AF58AE7D3563' WITH GRANT OPTION |
        | GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION                                                                          |
        +----------------------------------------------------------------------------------------------------------------------------------------+
        

        The first thing CONNECT is doing is to create the file (in above example cusers.json, and from it is doing table discovery.
        In Docker file is created in data directory - /var/lib/mysql/web_users , directory that has file permissions of mysql:mysql.
        My testing involved different tests regarding curl versions (Ubuntu bionic default 7.58 and Focal default 7.68), hoping to get different types of files, but no, it is not curl related.
        I tested locally on Focal VM and it works, so my conclusion is that has something to do with Docker permissions.

      • Docker container is started with:

        docker run -d -e MARIADB_USER=anel \
          -e MARIADB_PASSWORD=anel -e MARIADB_DATABASE=web_users \
          -e MARIADB_RANDOM_ROOT_PASSWORD=1 \
          -e MARIADB_ROOT_HOST=mariadb_server1 \
          -v $PWD/my_container_files:/etc/mysql/conf.d \
          --name mariadb-server1 \
           mariadb:latest 
        

        where the config file in my_container_files/ dir is:

        printf "[mariadb]\nplugin-load-add=ha_connect\nplugin_dir=/usr/lib/mysql/plugin\n" >my_container.conf
        

        Haven't tested in other images but expecting to have the same behavior.

      Attachments

        Issue Links

          Activity

            danblack Daniel Black added a comment -

            Dockerfile

            FROM quay.io/mariadb-foundation/mariadb-debug:10.6
             
            RUN apt-get update \
              && apt-get install -y mariadb-plugin-connect mariadb-plugin-connect-dbgsym curl strace gdb && \
              rm -rf /var/lib/apt/lists/*
            
            

            build: $ buildah bud --tag mariadb_connect .

            run

            $ docker run -d -e MARIADB_USER=anel -e MARIADB_PASSWORD=anel -e MARIADB_DATABASE=web_users   -e MARIADB_RANDOM_ROOT_PASSWORD=1  --cap-add CAP_SYS_PTRACE -p 2345   --name mariadb-server1 --rm mariadb_connect
            6a1184cd5306df68228ed6f9500b8295a6efeec8d3405830b81929be779f50ca
            

            Notes

            obtain port map for debug port

            $ podman port mariadb-server1
            2345/tcp -> 0.0.0.0:33973
            

            mariadb client

            $ podman exec -ti mariadb-server1 mariadb -p']bQ@>+_mN6{v{%YZ[`@l|RB".R!3K?8}' web_users
            Welcome to the MariaDB monitor.  Commands end with ; or \g.
            Your MariaDB connection id is 3
            Server version: 10.6.5-MariaDB-309209c51c211d0733a6c7a67fb70a523a1706f7 mariadb.org binary distribution
             
            Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
             
            Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
             
            MariaDB [web_users]> 
            

            gdbserver to run inside container

            $  podman exec -ti  mariadb-server1 gosu mysql gdbserver --attach  :2345 1
            Attached; pid = 1
            Listening on port 2345
            Remote debugging from host ::ffff:10.0.2.100, port 41920
            Detaching from process 175
            Detaching from process 176
            

            gdb remote connection using port number from 2345 map above

            $  ./gdb/gdb
            GNU gdb (GDB) 12.0.50.20210828-git
             
            (gdb) target extended-remote  :33973
            Remote debugging using :33973
            Reading /usr/sbin/mariadbd from remote target...
            warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
            Reading /usr/sbin/mariadbd from remote target...
            Reading symbols from target:/usr/sbin/mariadbd...
            Reading /usr/lib/debug/.build-id/4f/59b9d9bede1f9466cc81fc68ff6c20fb690381.debug from remote target...
            Reading /usr/lib/debug/.build-id/4f/59b9d9bede1f9466cc81fc68ff6c20fb690381.debug from remote target...
            Reading symbols from target:/usr/lib/debug/.build-id/4f/59b9d9bede1f9466cc81fc68ff6c20fb690381.debug...
            Reading /lib/x86_64-linux-gnu/libpcre2-8.so.0 from remote target...
            Reading /lib/x86_64-linux-gnu/libcrypt.so.1 from remote target...
            ....
            (gdb) b JSONDISC::GetColumns
            Breakpoint 1 at 0x7f6bac73eab0: file ./storage/connect/tabjson.cpp, line 172.
            Program not restarted.
            (gdb) c
            Continuing.
            

            The JSONDISC::GetColumns is the function that generate the Can only retrieve columns from object rows error.

            create table

            MariaDB [web_users]>  create table cusers3 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json;
            

            back to debugger

            [Detaching after vfork from child process 175]
            [Detaching after vfork from child process 176]
            [New Thread 1.173]
            [New Thread 1.174]
            [Switching to Thread 1.163]
             
            Thread 20 hit Breakpoint 1, JSONDISC::GetColumns (this=this@entry=0x7f6b2bfff040, g=g@entry=0x7f6b3c019db0, db=db@entry=0x7f6b3c0110b8 "web_users", dsn=dsn@entry=0x0, topt=topt@entry=0x7f6b3c018750) at ./storage/connect/tabjson.cpp:172
            172	./storage/connect/tabjson.cpp: No such file or directory.
            (gdb) bt full
            #0  JSONDISC::GetColumns (this=this@entry=0x7f6b2bfff040, g=g@entry=0x7f6b3c019db0, db=db@entry=0x7f6b3c0110b8 "web_users", dsn=dsn@entry=0x0, topt=topt@entry=0x7f6b3c018750) at ./storage/connect/tabjson.cpp:172
                    filename = '\000' <repeats 80 times>, "web_users/cusers3.json", '\000' <repeats 314 times>...
                    reclg = <optimized out>
                    mgo = <optimized out>
                    G = <optimized out>
            #1  0x00007f6bac73f8ce in JSONColumns (g=g@entry=0x7f6b3c019db0, db=db@entry=0x7f6b3c0110b8 "web_users", dsn=dsn@entry=0x0, topt=topt@entry=0x7f6b3c018750, info=info@entry=false) at ./storage/connect/tabjson.cpp:94
                    buftyp = {1, 3, 1, 7, 7, 3, 3, 1}
                    fldtyp = {FLD_NAME, FLD_TYPE, FLD_TYPENAME, FLD_PREC, FLD_LENGTH, FLD_SCALE, FLD_NULL, FLD_FORMAT}
                    length = {0, 6, 8, 10, 10, 6, 6, 0}
                    i = <optimized out>
                    n = 0
                    ncol = 8
                    jcp = <optimized out>
                    pjdc = 0x7f6b2bfff040
                    qrp = <optimized out>
                    crp = <optimized out>
            #2  0x00007f6bac7abea8 in RESTColumns (g=g@entry=0x7f6b3c019db0, tp=tp@entry=0x7f6b3c018750, tab=tab@entry=0x7f6b3c0109a0 "cusers3", db=db@entry=0x7f6b3c0110b8 "web_users", info=info@entry=false) at ./storage/connect/tabrest.cpp:256
                    qrp = 0x0
                    filename = "/var/lib/mysql/web_users/cusers3.json", '\000' <repeats 4059 times>...
                    rc = <optimized out>
                    http = 0x7f6b3c018828 "http://jsonplaceholder.typicode.com/users"
                    uri = 0x0
                    fn = <optimized out>
                    ftype = <optimized out>
                    grf = <optimized out>
                    curl = true
            #3  0x00007f6bac6ef845 in connect_assisted_discovery (thd=0x7f6b3c000c58, table_s=0x7f6b86ffcfa0, create_info=0x7f6b86ffdc80) at ./storage/connect/ha_connect.cc:6142
                    rem = <optimized out>
                    key = <optimized out>
                    cnm = <optimized out>
                    dft = <optimized out>
                    xtra = <optimized out>
                    fmt = <optimized out>
                    dec = <optimized out>
                    typ = <optimized out>
                    i = <optimized out>
                    len = <optimized out>
                    prec = 0
                    flg = <optimized out>
                    v = 0 '\000'
                    fncn = 0x0
                    user = 0x7f6bac7b1e62 "root"
                    fn = 0x0
                    db = 0x7f6b3c0110b8 "web_users"
                    host = 0x7f6bac7b1e67 "localhost"
                    pwd = 0x0
                    sep = <optimized out>
                    tbl = <optimized out>
                    src = 0x0
                    col = 0x0
                    ocl = 0x0
                    rnk = 0x0
                    pic = 0x0
                    fcl = 0x0
                    skc = 0x0
                    zfn = <optimized out>
                    tab = 0x7f6b3c0109a0 "cusers3"
                    dsn = <optimized out>
                    shm = 0x0
                    dpath = <optimized out>
                    url = 0x0
                    port = 0
                    mxr = 0
                    rc = 0
                    mul = 0
                    sop = <optimized out>
                    ucnc = <optimized out>
                    cnc = <optimized out>
                    cto = -1
                    qto = -1
                    tm = <optimized out>
                    fnc = 1
                    supfnc = <optimized out>
                    bif = false
                    ok = <optimized out>
                    dbf = <optimized out>
                    ttp = <optimized out>
                    ttr = <optimized out>
                    qrp = 0x0
                    crp = <optimized out>
                    xp = 0x7f6b3c0186b0
                    g = 0x7f6b3c019db0
                    topt = 0x7f6b3c018750
                    buf = "CREATE TABLE whatever (\000p\223\350\327\374U\000\000\220\313\377\206k\177\000\000\300\332\320\326\374U\000\000\000\000\000\000\000\000\000\000\220\313\377\206k\177\000\000 \313\377\206k\177\000\000\063\371\320\325\374U\000\000\000\000\000\000\000\000\000\000\260\026\027\326\374U\000\000X\f\000<k\177\000\000X\f\000<k\177\000\000\f\000\000\000\000\000\000\000\340-\363\325\374U\000\000`\314\377\206k\177\000\000\220\313\377\206k\177\000\000\000\314\377\206k\177\000\000r\373\320\325\374U\000\000\240-\350\327\374U\000\000\360+\350\327\374U\000\000\340/\350\327\374U\000\000\060.\350\327\374U\000\000\300.\350\327\374U\000\000"...
                    sql = {<Charset> = {m_charset = 0x55fcd6cf9140 <my_charset_utf8mb3_general_ci>}, <Binary_string> = {<Sql_alloc> = {<No data fields>}, Ptr = 0x7f6b86ffca90 "CREATE TABLE whatever (", str_length = 23, Alloced_length = 1024, extra_alloc = 0, alloced = false, thread_specific = false}, <No data fields>}
            #4  0x000055fcd5da975e in create_table_impl (thd=thd@entry=0x7f6b3c000c58, ddl_log_state_create=ddl_log_state_create@entry=0x7f6b86ffda30, ddl_log_state_rm=<optimized out>, orig_db=@0x7f6b3c0109f0: {str = 0x7f6b3c0110b8 "web_users", length = 9}, orig_table_name=@0x7f6b3c010a00: {str = 0x7f6b3c0109a0 "cusers3", length = 7}, db=@0x7f6b3c0109f0: {str = 0x7f6b3c0110b8 "web_users", length = 9}, table_name=@0x7f6b3c010a00: {str = 0x7f6b3c0109a0 "cusers3", length = 7}, path=@0x7f6b86ffd760: {str = 0x7f6b86ffd780 "./web_users/cusers3", length = 19}, options=<optimized out>, create_info=0x7f6b86ffdc80, alter_info=0x7f6b86ffdb90, create_table_mode=-3, is_trans=0x7f6b86ffda2f, key_info=0x7f6b86ffd758, key_count=0x7f6b86ffd754, frm=0x7f6b86ffd770) at ./sql/sql_table.cc:4397
                    share = {table_category = TABLE_CATEGORY_TEMPORARY, name_hash = {key_offset = 0, key_length = 0, blength = 0, records = 0, flags = 0, array = {buffer = 0x0, elements = 0, max_element = 0, alloc_increment = 0, size_of_element = 0, m_psi_key = 0, malloc_flags = 0}, get_key = 0x0, hash_function = 0x0, free = 0x0, charset = 0x0}, mem_root = {free = 0x7f6b3c018738, used = 0x0, pre_alloc = 0x0, min_malloc = 32, block_size = 985, block_num = 5, first_block_usage = 0, error_handler = 0x55fcd5debbf0 <sql_alloc_error_handler()>, m_psi_key = 0}, keynames = {count = 0, name = 0x0, type_names = 0x0, type_lengths = 0x0}, fieldnames = {count = 0, name = 0x0, type_names = 0x0, type_lengths = 0x0}, intervals = 0x0, LOCK_ha_data = {m_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}, m_psi = 0x0}, LOCK_share = {m_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}, m_psi = 0x0}, tdc = 0x0, tabledef_version = {str = 0x0, length = 0}, option_list = 0x7f6b3c011188, option_struct = 0x7f6b3c018750, field = 0x7f6b86ffcf50, found_next_number_field = 0x0, key_info = 0x0, check_constraints = 0x0, blob_field = 0x0, vcol_defs = {str = 0x0, length = 0}, stats_cb = {stats_state = {state = 0}, hist_state = {state = 0}, mem_root = {free = 0x0, used = 0x0, pre_alloc = 0x0, min_malloc = 0, block_size = 0, block_num = 0, first_block_usage = 0, error_handler = 0x0, m_psi_key = 0}, table_stats = 0x0, total_hist_size = 0}, default_values = 0x0, comment = {str = 0x0, length = 0}, table_charset = 0x0, check_set = 0x0, all_set = {bitmap = 0x0, last_word_ptr = 0x0, mutex = 0x0, last_word_mask = 0, n_bits = 0}, table_cache_key = {str = 0x7f6b3c0110b8 "web_users", length = 0}, db = {str = 0x7f6b3c0110b8 "web_users", length = 9}, table_name = {str = 0x7f6b3c0109a0 "cusers3", length = 7}, path = {str = 0x7f6b86ffd780 "./web_users/cusers3", length = 19}, normalized_path = {str = 0x7f6b86ffd780 "./web_users/cusers3", length = 19}, connect_string = {str = 0x0, length = 0}, keys_in_use = {buffer = {0}}, ignored_indexes = {buffer = {0}}, keys_for_keyread = {buffer = {0}}, min_rows = 0, max_rows = 0, avg_row_length = 0, mysql_version = 0, reclength = 0, stored_rec_length = 0, db_plugin = 0x55fcd7e89440, row_type = ROW_TYPE_DEFAULT, table_type = TABLE_TYPE_UNKNOWN, tmp_table = INTERNAL_TMP_TABLE, transactional = HA_CHOICE_UNDEF, page_checksum = HA_CHOICE_UNDEF, key_block_size = 0, stats_sample_pages = 0, stats_auto_recalc = HA_STATS_AUTO_RECALC_DEFAULT, null_bytes = 0, last_null_bit_pos = 0, null_bytes_for_compare = 0, fields = 0, stored_fields = 0, virtual_fields = 0, virtual_not_stored_blob_fields = 0, null_fields = 0, blob_fields = 0, varchar_fields = 0, default_fields = 0, visible_fields = 0, default_expressions = 0, table_check_constraints = 0, field_check_constraints = 0, rec_buff_length = 0, keys = 0, key_parts = 0, ext_key_parts = 0, max_key_length = 0, max_unique_length = 0, uniques = 0, db_create_options = 0, db_options_in_use = 0, db_record_offset = 0, rowid_field_offset = 0, primary_key = 0, next_number_index = 0, next_number_key_offset = 0, next_number_keypart = 0, error = OPEN_FRM_OK, open_errno = 0, column_bitmap_size = 0, frm_version = 11 '\v', check_set_initialized = TABLE_SHARE::NOT_INITIALIZED, use_ext_keys = false, null_field_first = false, system = false, not_usable_by_query_cache = true, online_backup = false, no_replicate = false, crashed = false, is_view = false, can_cmp_whole_record = false, table_creation_was_logged = false, non_determinstic_insert = false, vcols_need_refixing = false, has_update_default_function = false, can_do_row_logging = false, long_unique_table = false, table_map_id = 6, incompatible_version = 0, view_def = 0x0, sequence = 0x0, auto_partitioned = false, partition_info_str = 0x0, partition_info_str_len = 0, partition_info_buffer_size = 0, default_part_plugin = 0x0, versioned = VERS_UNDEFINED, vers = {start_fieldno = 0, end_fieldno = 0, name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, constr_name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, unique_keys = 0}, period = {start_fieldno = 0, end_fieldno = 0, name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, constr_name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, unique_keys = 0}, table_field_def_cache = 0x0, ha_share = 0x0, m_psi = 0x0, frm_image = 0x0}
                    hton = 0x55fcd7f2e988
                    ha_err = <optimized out>
                    no_fields = 0x0
                    err = <optimized out>
                    alias = <optimized out>
                    file = 0x0
                    error = 1
                    frm_only = false
                    internal_tmp_table = false
            #5  0x000055fcd5da9cd8 in mysql_create_table_no_lock (thd=thd@entry=0x7f6b3c000c58, ddl_log_state_create=ddl_log_state_create@entry=0x7f6b86ffda30, ddl_log_state_rm=ddl_log_state_rm@entry=0x7f6b86ffda50, db=db@entry=0x7f6b3c0109f0, table_name=table_name@entry=0x7f6b3c010a00, create_info=create_info@entry=0x7f6b86ffdc80, alter_info=0x7f6b86ffdb90, is_trans=0x7f6b86ffda2f, create_table_mode=-3, table_list=0x7f6b3c0109d8) at ./sql/sql_table.cc:4546
                    not_used_1 = 0x4
                    not_used_2 = 32619
                    res = <optimized out>
                    path_length = <optimized out>
                    path = "./web_users/cusers3\000\374U\000\000\220\327\377\206k\177\000\000\000\000\000\000k\177\000\000\000\000\000\000k\177\000\000\020\323\320\326\374U\000\000\260\327\377\206k\177\000\000\000\000\000\000\000\000\000\000f\221\312\325\374U\000\000\340\205\001<k\177\000\000\276[E\326\374U\000\000\001\000\000\000\000\000\000\000\350\023\001<k\177\000\000\200Q\001\000\000\000\000\000\370(\000<k\177", '\000' <repeats 18 times>, "`\330\377\206k\177\000\000\360\221\312\325\374U\000\000\000\000\000\000k\177\000\000@\271\310\326\374U\000\000p\330\377\206k\177\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000"...
                    cpath = {str = 0x7f6b86ffd780 "./web_users/cusers3", length = 19}
                    frm = {str = 0x0, length = 0}
            #6  0x000055fcd5daa0e5 in mysql_create_table (thd=thd@entry=0x7f6b3c000c58, create_table=create_table@entry=0x7f6b3c0109d8, create_info=create_info@entry=0x7f6b86ffdc80, alter_info=alter_info@entry=0x7f6b86ffdb90) at ./sql/sql_table.cc:4658
                    err = <optimized out>
                    pos_in_locked_tables = <optimized out>
                    mdl_ticket = <optimized out>
                    ddl_log_state_create = {list = 0x7f6b3c007b88, execute_entry = 0x7f6b3c010768, main_entry = 0x7f6b3c007b88, flags = 4}
                    ddl_log_state_rm = {list = 0x0, execute_entry = 0x0, main_entry = 0x0, flags = 0}
                    create_table_mode = <optimized out>
                    save_thd_create_info_options = <optimized out>
                    is_trans = false
                    result = <optimized out>
            #7  0x000055fcd5dab9c9 in Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x7f6b3c000c58) at ./sql/sql_table.cc:11778
                    lex = <optimized out>
                    select_lex = 0x7f6b3c0055f8
                    first_table = 0x7f6b3c0109d8
                    link_to_local = 184
                    create_table = 0x7f6b3c0109d8
                    select_tables = 0x0
                    unit = <optimized out>
                    res = <optimized out>
                    used_engine = <optimized out>
                    create_info = {<HA_CREATE_INFO> = {<Table_scope_and_contents_source_st> = {<Table_scope_and_contents_source_pod_st> = {alter_table_convert_to_charset = 0x0, tabledef_version = {str = 0x0, length = 0}, org_tabledef_version = {str = 0x0, length = 0}, connect_string = {str = 0x0, length = 0}, comment = {str = 0x0, length = 0}, alias = {str = 0x7f6b3c0109d0 "cusers3", length = 7}, org_storage_engine_name = {str = 0x0, length = 0}, new_storage_engine_name = {str = 0x7f6bac7b1000 "CONNECT", length = 7}, password = 0x0, tablespace = 0x0, data_file_name = 0x0, index_file_name = 0x0, max_rows = 0, min_rows = 0, auto_increment_value = 0, table_options = 0, avg_row_length = 0, used_fields = 4096, key_block_size = 0, expression_length = 0, field_check_constraints = 0, stats_sample_pages = 0, null_bits = 0, options = 0, merge_insert_method = 0, extra_size = 0, db_type = 0x55fcd7f2e988, row_type = ROW_TYPE_DEFAULT, transactional = HA_CHOICE_UNDEF, storage_media = HA_SM_DEFAULT, page_checksum = HA_CHOICE_UNDEF, option_list = 0x7f6b3c011188, stats_auto_recalc = HA_STATS_AUTO_RECALC_DEFAULT, varchar = false, sequence = false, check_constraint_list = 0x0, option_struct = 0x0, fields_option_struct = 0x0, indexes_option_struct = 0x0, table = 0x0, pos_in_locked_tables = 0x0, merge_list = 0x0, mdl_ticket = 0x0, table_was_deleted = false, seq_create_info = 0x0}, vers_info = {<Table_period_info> = {<Sql_alloc> = {<No data fields>}, name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x55fcd66771b9 "SYSTEM_TIME", length = 11}, <No data fields>}, <No data fields>}, period = {start = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, end = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}}, create_if_not_exists = false, constr = 0x0, unique_keys = 0}, as_row = {start = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, end = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}}, versioned_fields = false, unversioned_fields = false}, period_info = {<Sql_alloc> = {<No data fields>}, name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, period = {start = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, end = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}}, create_if_not_exists = false, constr = 0x0, unique_keys = 0}}, <Schema_specification_st> = {default_table_charset = 0x0, schema_comment = 0x0}, alter_info = 0x7f6b86ffdb90}, <DDL_options_st> = {m_options = DDL_options_st::OPT_NONE}, <No data fields>}
                    alter_info = {drop_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdb90, elements = 0}, <No data fields>}, alter_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdba8, elements = 0}, <No data fields>}, key_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdbc0, elements = 0}, <No data fields>}, alter_rename_key_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdbd8, elements = 0}, <No data fields>}, create_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdbf0, elements = 0}, <No data fields>}, alter_index_ignorability_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdc08, elements = 0}, <No data fields>}, check_constraint_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdc20, elements = 0}, <No data fields>}, flags = 0, partition_flags = 0, keys_onoff = Alter_info::LEAVE_AS_IS, partition_names = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdc50, elements = 0}, <No data fields>}, num_parts = 0, requested_algorithm = Alter_info::ALTER_TABLE_ALGORITHM_NONE, requested_lock = Alter_info::ALTER_TABLE_LOCK_DEFAULT}
            #8  0x000055fcd5d06cce in mysql_execute_command (thd=0x7f6b3c000c58, is_called_from_prepared_stmt=<optimized out>) at ./sql/sql_parse.cc:5997
                    multi_delete_error = <optimized out>
                    wsrep_error_label = <optimized out>
                    error = <optimized out>
                    res = 0
                    up_result = 0
                    lex = 0x7f6b3c004d38
                    select_lex = 0x7f6b3c0055f8
                    first_table = 0x7f6b3c0109d8
                    all_tables = 0x7f6b3c0109d8
                    unit = 0x7f6b3c004e00
                    have_table_map_for_update = false
                    rpl_filter = <optimized out>
                    ots = {ctx = 0x7f6b3c0049e8, traceable = false}
                    trace_command = {<Json_writer_struct> = {my_writer = <optimized out>, context = {writer = <optimized out>}, closed = false}, <No data fields>}
                    trace_command_steps = {<Json_writer_struct> = {my_writer = 0x0, context = {writer = <optimized out>}, closed = false}, <No data fields>}
                    orig_binlog_format = BINLOG_FORMAT_MIXED
                    orig_current_stmt_binlog_format = BINLOG_FORMAT_STMT
            #9  0x000055fcd5cf7037 in mysql_parse (thd=0x7f6b3c000c58, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at ./sql/sql_parse.cc:8030
                    found_semicolon = <optimized out>
                    error = <optimized out>
                    lex = 0x7f6b3c004d38
                    err = <optimized out>
            #10 0x000055fcd5d02fb5 in dispatch_command (command=COM_QUERY, thd=0x7f6b3c000c58, packet=<optimized out>, packet_length=<optimized out>, blocking=<optimized out>) at ./sql/sql_class.h:234
                    packet_end = 0x7f6b3c0108b4 ""
                    parser_state = {m_lip = {lookahead_token = -1, lookahead_yylval = 0x0, m_thd = 0x7f6b3c000c58, m_ptr = 0x7f6b3c0108b5 "\t", m_tok_start = 0x7f6b3c0108b5 "\t", m_tok_end = 0x7f6b3c0108b5 "\t", m_end_of_query = 0x7f6b3c0108b4 "", m_tok_start_prev = 0x7f6b3c0108b4 "", m_buf = 0x7f6b3c010850 "create table cusers3 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json", m_buf_length = 100, m_echo = true, m_echo_saved = false, m_cpp_buf = 0x7f6b3c010910 "create table cusers3 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json", m_cpp_ptr = 0x7f6b3c010974 "", m_cpp_tok_start = 0x7f6b3c010974 "", m_cpp_tok_start_prev = 0x7f6b3c010974 "", m_cpp_tok_end = 0x7f6b3c010974 "", m_body_utf8 = 0x0, m_body_utf8_ptr = 0x0, m_cpp_utf8_processed_ptr = 0x0, next_state = MY_LEX_END, found_semicolon = 0x0, ignore_space = false, stmt_prepare_mode = false, multi_statements = true, yylineno = 1, m_digest = 0x0, in_comment = NO_COMMENT, in_comment_saved = NO_COMMENT, m_cpp_text_start = 0x7f6b3c010965 "table_type=json", m_cpp_text_end = 0x7f6b3c01096f "=json", m_underscore_cs = 0x0}, m_yacc = {yacc_yyss = 0x0, yacc_yyvs = 0x0, m_set_signal_info = {m_item = {0x0 <repeats 12 times>}}, m_lock_type = TL_READ_DEFAULT, m_mdl_type = MDL_SHARED_READ}, m_digest_psi = 0x0}
                    net = 0x7f6b3c000ee8
                    error = false
                    do_end_of_statement = true
                    drop_more_results = false
                    __FUNCTION__ = "dispatch_command"
                    res = <optimized out>
            #11 0x000055fcd5d04ea8 in do_command (thd=0x7f6b3c000c58, blocking=blocking@entry=true) at ./sql/sql_parse.cc:1404
                    return_value = <optimized out>
                    packet = 0x7f6b3c0084b8 "\003create table cusers3 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json"
                    packet_length = <optimized out>
                    net = 0x7f6b3c000ee8
                    command = COM_QUERY
                    __FUNCTION__ = "do_command"
            #12 0x000055fcd5e143d7 in do_handle_one_connection (connect=<optimized out>, put_in_cache=true) at ./sql/sql_connect.cc:1418
                    create_user = true
                    thr_create_utime = <optimized out>
                    thd = 0x7f6b3c000c58
            #13 0x000055fcd5e1472d in handle_one_connection (arg=arg@entry=0x55fcd83a52f8) at ./sql/sql_connect.cc:1312
                    connect = 0x55fcd83a52f8
            #14 0x000055fcd617241d in pfs_spawn_thread (arg=0x55fcd831fd98) at ./storage/perfschema/pfs.cc:2201
                    typed_arg = 0x55fcd831fd98
                    user_arg = 0x55fcd83a52f8
                    user_start_routine = 0x55fcd5e146d0 <handle_one_connection(void*)>
                    pfs = <optimized out>
                    klass = <optimized out>
            #15 0x00007f6bad05b609 in start_thread (arg=<optimized out>) at pthread_create.c:477
                    ret = <optimized out>
                    pd = <optimized out>
                    unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140099803150080, -2772519655998606122, 140722899554222, 140722899554223, 94544424106720, 140099803148032, 2833052169746920662, 2833135820276774102}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
                    not_first_call = 0
            #16 0x00007f6bacc49293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
            

            json file retreived

            $ podman exec -ti 6a1184cd5306 gosu mysql bash
            mysql@6a1184cd5306:/$ cd /var/lib/mysql/
            mysql@6a1184cd5306:/var/lib/mysql$ ls
            aria_log.00000001  aria_log_control  ddl_recovery.log  ib_buffer_pool  ib_logfile0  ibdata1  ibtmp1  multi-master.info	mysql  performance_schema  sys	web_users
            mysql@6a1184cd5306:/var/lib/mysql$ cd web_users/
            mysql@6a1184cd5306:/var/lib/mysql/web_users$ ls
            cusers3.json  db.opt
            mysql@6a1184cd5306:/var/lib/mysql/web_users$ ls -la
            total 20
            drwx------. 2 mysql mysql 4096 Sep 30 03:05 .
            drwxr-xr-x. 6 mysql mysql 4096 Sep 30 03:02 ..
            -rw-rw----. 1 mysql mysql 5645 Sep 30 03:05 cusers3.json
            -rw-rw----. 1 mysql mysql   67 Sep 30 03:02 db.opt
            

            (gdb) info locals
            filename = '\000' <repeats 80 times>, "web_users/cusers3.json", '\000' <repeats 314 times>...
            reclg = 0
            mgo = false
            G = 0x0
            (gdb) p topt
            $1 = (PTOS) 0x7f6b3c018750
            (gdb) p *topt
            $2 = {type = 0x7f6b3c018820 "json", filename = 0x0, optname = 0x0, tabname = 0x0, tablist = 0x0, dbname = 0x0, separator = 0x0, qchar = 0x0, module = 0x0, subtype = 0x7f6b2bfff030 "cusers3.json", catfunc = 0x0, srcdef = 0x0, colist = 0x0, filter = 0x0, oplist = 0x0, data_charset = 0x0, http = 0x7f6b3c018828 "http://jsonplaceholder.typicode.com/users", uri = 0x0, lrecl = 0, elements = 0, multiple = 0, header = 0, quoted = 18446744073709551615, ending = 18446744073709551615, compressed = 0, mapped = false, huge = false, split = false, readonly = false, sepindex = false, zipped = false}
            (gdb) p lvl
            $3 = 5
            (gdb) p sz
            $4 = 1024
            (gdb) p limit
            $5 = 50
            (gdb) p tdp
            $6 = (JSONDEF *) 0x7f6b2bfff1c8
            (gdb) p *tdp
            $7 = (JSONDEF) {<DOSDEF> = {<TABDEF> = {<RELDEF> = {<BLOCK> = {_vptr.BLOCK = 0x7f6bac7f4068 <vtable for JSONDEF+16>}, Next = 0x0, Name = 0x0, Database = 0x0, To_Cols = 0x0, Cat = 0x0, Hc = 0x0}, Schema = 0x0, Desc = 0x0, Recfm = RECFM_VAR, Catfunc = 1, Card = 0, Elemt = 0, Sort = 0, Multiple = 0, Degree = 0, Pseudo = 3, Read_Only = false, m_data_charset = 0x0, csname = 0x0}, Fn = 0x0, Ofn = 0x0, Entry = 0x0, Pwd = 0x0, To_Indx = 0x0, Mapped = false, Zipped = false, Mulentries = false, Append = false, Padded = false, Huge = false, Accept = false, Eof = false, To_Pos = 0x0, Optimized = 0, AllocBlks = 0, Compressed = 0, Lrecl = 0, AvgLen = 0, Block = 0, Last = 0, Blksize = 0, Maxerr = 0, ReadMode = 0, Ending = 0, Teds = 0 '\000'}, Jmode = MODE_OBJECT, Objname = 0x0, Xcol = 0x0, Limit = 1, Pretty = 2, Base = 0, Strict = false, Sep = 46 '.', Uri = 0x0, Collname = 0x0, Options = 0x0, Filter = 0x0, Driver = 0x0, Pipe = false, Version = 0, Wrapname = 0x0}
            (gdb) c
            

            back to mariadb client

            MariaDB [web_users]> show create table cusers3;
            | cusers3 | CREATE TABLE `cusers3` (
              `id` int(2) NOT NULL `JPATH`='$.id',
              `name` char(24) NOT NULL `JPATH`='$.name',
              `username` char(16) NOT NULL `JPATH`='$.username',
              `email` char(25) NOT NULL `JPATH`='$.email',
              `address_street` char(17) NOT NULL `JPATH`='$.address.street',
              `address_suite` char(9) NOT NULL `JPATH`='$.address.suite',
              `address_city` char(14) NOT NULL `JPATH`='$.address.city',
              `address_zipcode` char(10) NOT NULL `JPATH`='$.address.zipcode',
              `address_geo_lat` char(8) NOT NULL `JPATH`='$.address.geo.lat',
              `address_geo_lng` char(9) NOT NULL `JPATH`='$.address.geo.lng',
              `phone` char(21) NOT NULL `JPATH`='$.phone',
              `website` char(13) NOT NULL `JPATH`='$.website',
              `company_name` char(18) NOT NULL `JPATH`='$.company.name',
              `company_catchPhrase` char(40) NOT NULL `JPATH`='$.company.catchPhrase',
              `company_bs` char(36) NOT NULL `JPATH`='$.company.bs'
            ) ENGINE=CONNECT DEFAULT CHARSET=utf8mb4 `TABLE_TYPE`='json' `HTTP`='http://jsonplaceholder.typicode.com/users' |
            

            (under debugger)
            MariaDB [web_users]> create table cusers5 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json;
            Query OK, 0 rows affected, 1 warning (15.017 sec)

            (cleared breakpoint and continued}
            MariaDB [web_users]> create or replace table cusers5 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json;
            ERROR 1105 (HY000): Can only retrieve columns from object rows

             

            So in short, there is a race condition.

            Note: gdb client is manually compiled to include this patchhttps://sourceware.org/pipermail/gdb-patches/2021-August/181718.html so gdb symbols are retreived from "remote" container

            danblack Daniel Black added a comment - Dockerfile FROM quay.io/mariadb-foundation/mariadb-debug:10.6   RUN apt-get update \ && apt-get install -y mariadb-plugin-connect mariadb-plugin-connect-dbgsym curl strace gdb && \ rm -rf /var/lib/apt/lists/* build: $ buildah bud --tag mariadb_connect . run $ docker run -d -e MARIADB_USER=anel -e MARIADB_PASSWORD=anel -e MARIADB_DATABASE=web_users -e MARIADB_RANDOM_ROOT_PASSWORD=1 --cap-add CAP_SYS_PTRACE -p 2345 --name mariadb-server1 --rm mariadb_connect 6a1184cd5306df68228ed6f9500b8295a6efeec8d3405830b81929be779f50ca Notes CAP_SYS_PTRACE to allow debugging in container -p to expose the ports docker may require --security-opt seccomp=unconfined https://docs.docker.com/engine/security/seccomp/ obtain port map for debug port $ podman port mariadb-server1 2345/tcp -> 0.0.0.0:33973 mariadb client $ podman exec -ti mariadb-server1 mariadb -p']bQ@>+_mN6{v{%YZ[`@l|RB".R!3K?8}' web_users Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.6.5-MariaDB-309209c51c211d0733a6c7a67fb70a523a1706f7 mariadb.org binary distribution   Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.   Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.   MariaDB [web_users]> gdbserver to run inside container $ podman exec -ti mariadb-server1 gosu mysql gdbserver --attach :2345 1 Attached; pid = 1 Listening on port 2345 Remote debugging from host ::ffff:10.0.2.100, port 41920 Detaching from process 175 Detaching from process 176 gdb remote connection using port number from 2345 map above $ ./gdb/gdb GNU gdb (GDB) 12.0.50.20210828-git   (gdb) target extended-remote :33973 Remote debugging using :33973 Reading /usr/sbin/mariadbd from remote target... warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead. Reading /usr/sbin/mariadbd from remote target... Reading symbols from target:/usr/sbin/mariadbd... Reading /usr/lib/debug/.build-id/4f/59b9d9bede1f9466cc81fc68ff6c20fb690381.debug from remote target... Reading /usr/lib/debug/.build-id/4f/59b9d9bede1f9466cc81fc68ff6c20fb690381.debug from remote target... Reading symbols from target:/usr/lib/debug/.build-id/4f/59b9d9bede1f9466cc81fc68ff6c20fb690381.debug... Reading /lib/x86_64-linux-gnu/libpcre2-8.so.0 from remote target... Reading /lib/x86_64-linux-gnu/libcrypt.so.1 from remote target... .... (gdb) b JSONDISC::GetColumns Breakpoint 1 at 0x7f6bac73eab0: file ./storage/connect/tabjson.cpp, line 172. Program not restarted. (gdb) c Continuing. The JSONDISC::GetColumns is the function that generate the Can only retrieve columns from object rows error. create table MariaDB [web_users]> create table cusers3 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json; back to debugger [Detaching after vfork from child process 175] [Detaching after vfork from child process 176] [New Thread 1.173] [New Thread 1.174] [Switching to Thread 1.163]   Thread 20 hit Breakpoint 1, JSONDISC::GetColumns (this=this@entry=0x7f6b2bfff040, g=g@entry=0x7f6b3c019db0, db=db@entry=0x7f6b3c0110b8 "web_users", dsn=dsn@entry=0x0, topt=topt@entry=0x7f6b3c018750) at ./storage/connect/tabjson.cpp:172 172 ./storage/connect/tabjson.cpp: No such file or directory. (gdb) bt full #0 JSONDISC::GetColumns (this=this@entry=0x7f6b2bfff040, g=g@entry=0x7f6b3c019db0, db=db@entry=0x7f6b3c0110b8 "web_users", dsn=dsn@entry=0x0, topt=topt@entry=0x7f6b3c018750) at ./storage/connect/tabjson.cpp:172 filename = '\000' <repeats 80 times>, "web_users/cusers3.json", '\000' <repeats 314 times>... reclg = <optimized out> mgo = <optimized out> G = <optimized out> #1 0x00007f6bac73f8ce in JSONColumns (g=g@entry=0x7f6b3c019db0, db=db@entry=0x7f6b3c0110b8 "web_users", dsn=dsn@entry=0x0, topt=topt@entry=0x7f6b3c018750, info=info@entry=false) at ./storage/connect/tabjson.cpp:94 buftyp = {1, 3, 1, 7, 7, 3, 3, 1} fldtyp = {FLD_NAME, FLD_TYPE, FLD_TYPENAME, FLD_PREC, FLD_LENGTH, FLD_SCALE, FLD_NULL, FLD_FORMAT} length = {0, 6, 8, 10, 10, 6, 6, 0} i = <optimized out> n = 0 ncol = 8 jcp = <optimized out> pjdc = 0x7f6b2bfff040 qrp = <optimized out> crp = <optimized out> #2 0x00007f6bac7abea8 in RESTColumns (g=g@entry=0x7f6b3c019db0, tp=tp@entry=0x7f6b3c018750, tab=tab@entry=0x7f6b3c0109a0 "cusers3", db=db@entry=0x7f6b3c0110b8 "web_users", info=info@entry=false) at ./storage/connect/tabrest.cpp:256 qrp = 0x0 filename = "/var/lib/mysql/web_users/cusers3.json", '\000' <repeats 4059 times>... rc = <optimized out> http = 0x7f6b3c018828 "http://jsonplaceholder.typicode.com/users" uri = 0x0 fn = <optimized out> ftype = <optimized out> grf = <optimized out> curl = true #3 0x00007f6bac6ef845 in connect_assisted_discovery (thd=0x7f6b3c000c58, table_s=0x7f6b86ffcfa0, create_info=0x7f6b86ffdc80) at ./storage/connect/ha_connect.cc:6142 rem = <optimized out> key = <optimized out> cnm = <optimized out> dft = <optimized out> xtra = <optimized out> fmt = <optimized out> dec = <optimized out> typ = <optimized out> i = <optimized out> len = <optimized out> prec = 0 flg = <optimized out> v = 0 '\000' fncn = 0x0 user = 0x7f6bac7b1e62 "root" fn = 0x0 db = 0x7f6b3c0110b8 "web_users" host = 0x7f6bac7b1e67 "localhost" pwd = 0x0 sep = <optimized out> tbl = <optimized out> src = 0x0 col = 0x0 ocl = 0x0 rnk = 0x0 pic = 0x0 fcl = 0x0 skc = 0x0 zfn = <optimized out> tab = 0x7f6b3c0109a0 "cusers3" dsn = <optimized out> shm = 0x0 dpath = <optimized out> url = 0x0 port = 0 mxr = 0 rc = 0 mul = 0 sop = <optimized out> ucnc = <optimized out> cnc = <optimized out> cto = -1 qto = -1 tm = <optimized out> fnc = 1 supfnc = <optimized out> bif = false ok = <optimized out> dbf = <optimized out> ttp = <optimized out> ttr = <optimized out> qrp = 0x0 crp = <optimized out> xp = 0x7f6b3c0186b0 g = 0x7f6b3c019db0 topt = 0x7f6b3c018750 buf = "CREATE TABLE whatever (\000p\223\350\327\374U\000\000\220\313\377\206k\177\000\000\300\332\320\326\374U\000\000\000\000\000\000\000\000\000\000\220\313\377\206k\177\000\000 \313\377\206k\177\000\000\063\371\320\325\374U\000\000\000\000\000\000\000\000\000\000\260\026\027\326\374U\000\000X\f\000<k\177\000\000X\f\000<k\177\000\000\f\000\000\000\000\000\000\000\340-\363\325\374U\000\000`\314\377\206k\177\000\000\220\313\377\206k\177\000\000\000\314\377\206k\177\000\000r\373\320\325\374U\000\000\240-\350\327\374U\000\000\360+\350\327\374U\000\000\340/\350\327\374U\000\000\060.\350\327\374U\000\000\300.\350\327\374U\000\000"... sql = {<Charset> = {m_charset = 0x55fcd6cf9140 <my_charset_utf8mb3_general_ci>}, <Binary_string> = {<Sql_alloc> = {<No data fields>}, Ptr = 0x7f6b86ffca90 "CREATE TABLE whatever (", str_length = 23, Alloced_length = 1024, extra_alloc = 0, alloced = false, thread_specific = false}, <No data fields>} #4 0x000055fcd5da975e in create_table_impl (thd=thd@entry=0x7f6b3c000c58, ddl_log_state_create=ddl_log_state_create@entry=0x7f6b86ffda30, ddl_log_state_rm=<optimized out>, orig_db=@0x7f6b3c0109f0: {str = 0x7f6b3c0110b8 "web_users", length = 9}, orig_table_name=@0x7f6b3c010a00: {str = 0x7f6b3c0109a0 "cusers3", length = 7}, db=@0x7f6b3c0109f0: {str = 0x7f6b3c0110b8 "web_users", length = 9}, table_name=@0x7f6b3c010a00: {str = 0x7f6b3c0109a0 "cusers3", length = 7}, path=@0x7f6b86ffd760: {str = 0x7f6b86ffd780 "./web_users/cusers3", length = 19}, options=<optimized out>, create_info=0x7f6b86ffdc80, alter_info=0x7f6b86ffdb90, create_table_mode=-3, is_trans=0x7f6b86ffda2f, key_info=0x7f6b86ffd758, key_count=0x7f6b86ffd754, frm=0x7f6b86ffd770) at ./sql/sql_table.cc:4397 share = {table_category = TABLE_CATEGORY_TEMPORARY, name_hash = {key_offset = 0, key_length = 0, blength = 0, records = 0, flags = 0, array = {buffer = 0x0, elements = 0, max_element = 0, alloc_increment = 0, size_of_element = 0, m_psi_key = 0, malloc_flags = 0}, get_key = 0x0, hash_function = 0x0, free = 0x0, charset = 0x0}, mem_root = {free = 0x7f6b3c018738, used = 0x0, pre_alloc = 0x0, min_malloc = 32, block_size = 985, block_num = 5, first_block_usage = 0, error_handler = 0x55fcd5debbf0 <sql_alloc_error_handler()>, m_psi_key = 0}, keynames = {count = 0, name = 0x0, type_names = 0x0, type_lengths = 0x0}, fieldnames = {count = 0, name = 0x0, type_names = 0x0, type_lengths = 0x0}, intervals = 0x0, LOCK_ha_data = {m_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}, m_psi = 0x0}, LOCK_share = {m_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}, m_psi = 0x0}, tdc = 0x0, tabledef_version = {str = 0x0, length = 0}, option_list = 0x7f6b3c011188, option_struct = 0x7f6b3c018750, field = 0x7f6b86ffcf50, found_next_number_field = 0x0, key_info = 0x0, check_constraints = 0x0, blob_field = 0x0, vcol_defs = {str = 0x0, length = 0}, stats_cb = {stats_state = {state = 0}, hist_state = {state = 0}, mem_root = {free = 0x0, used = 0x0, pre_alloc = 0x0, min_malloc = 0, block_size = 0, block_num = 0, first_block_usage = 0, error_handler = 0x0, m_psi_key = 0}, table_stats = 0x0, total_hist_size = 0}, default_values = 0x0, comment = {str = 0x0, length = 0}, table_charset = 0x0, check_set = 0x0, all_set = {bitmap = 0x0, last_word_ptr = 0x0, mutex = 0x0, last_word_mask = 0, n_bits = 0}, table_cache_key = {str = 0x7f6b3c0110b8 "web_users", length = 0}, db = {str = 0x7f6b3c0110b8 "web_users", length = 9}, table_name = {str = 0x7f6b3c0109a0 "cusers3", length = 7}, path = {str = 0x7f6b86ffd780 "./web_users/cusers3", length = 19}, normalized_path = {str = 0x7f6b86ffd780 "./web_users/cusers3", length = 19}, connect_string = {str = 0x0, length = 0}, keys_in_use = {buffer = {0}}, ignored_indexes = {buffer = {0}}, keys_for_keyread = {buffer = {0}}, min_rows = 0, max_rows = 0, avg_row_length = 0, mysql_version = 0, reclength = 0, stored_rec_length = 0, db_plugin = 0x55fcd7e89440, row_type = ROW_TYPE_DEFAULT, table_type = TABLE_TYPE_UNKNOWN, tmp_table = INTERNAL_TMP_TABLE, transactional = HA_CHOICE_UNDEF, page_checksum = HA_CHOICE_UNDEF, key_block_size = 0, stats_sample_pages = 0, stats_auto_recalc = HA_STATS_AUTO_RECALC_DEFAULT, null_bytes = 0, last_null_bit_pos = 0, null_bytes_for_compare = 0, fields = 0, stored_fields = 0, virtual_fields = 0, virtual_not_stored_blob_fields = 0, null_fields = 0, blob_fields = 0, varchar_fields = 0, default_fields = 0, visible_fields = 0, default_expressions = 0, table_check_constraints = 0, field_check_constraints = 0, rec_buff_length = 0, keys = 0, key_parts = 0, ext_key_parts = 0, max_key_length = 0, max_unique_length = 0, uniques = 0, db_create_options = 0, db_options_in_use = 0, db_record_offset = 0, rowid_field_offset = 0, primary_key = 0, next_number_index = 0, next_number_key_offset = 0, next_number_keypart = 0, error = OPEN_FRM_OK, open_errno = 0, column_bitmap_size = 0, frm_version = 11 '\v', check_set_initialized = TABLE_SHARE::NOT_INITIALIZED, use_ext_keys = false, null_field_first = false, system = false, not_usable_by_query_cache = true, online_backup = false, no_replicate = false, crashed = false, is_view = false, can_cmp_whole_record = false, table_creation_was_logged = false, non_determinstic_insert = false, vcols_need_refixing = false, has_update_default_function = false, can_do_row_logging = false, long_unique_table = false, table_map_id = 6, incompatible_version = 0, view_def = 0x0, sequence = 0x0, auto_partitioned = false, partition_info_str = 0x0, partition_info_str_len = 0, partition_info_buffer_size = 0, default_part_plugin = 0x0, versioned = VERS_UNDEFINED, vers = {start_fieldno = 0, end_fieldno = 0, name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, constr_name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, unique_keys = 0}, period = {start_fieldno = 0, end_fieldno = 0, name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, constr_name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, unique_keys = 0}, table_field_def_cache = 0x0, ha_share = 0x0, m_psi = 0x0, frm_image = 0x0} hton = 0x55fcd7f2e988 ha_err = <optimized out> no_fields = 0x0 err = <optimized out> alias = <optimized out> file = 0x0 error = 1 frm_only = false internal_tmp_table = false #5 0x000055fcd5da9cd8 in mysql_create_table_no_lock (thd=thd@entry=0x7f6b3c000c58, ddl_log_state_create=ddl_log_state_create@entry=0x7f6b86ffda30, ddl_log_state_rm=ddl_log_state_rm@entry=0x7f6b86ffda50, db=db@entry=0x7f6b3c0109f0, table_name=table_name@entry=0x7f6b3c010a00, create_info=create_info@entry=0x7f6b86ffdc80, alter_info=0x7f6b86ffdb90, is_trans=0x7f6b86ffda2f, create_table_mode=-3, table_list=0x7f6b3c0109d8) at ./sql/sql_table.cc:4546 not_used_1 = 0x4 not_used_2 = 32619 res = <optimized out> path_length = <optimized out> path = "./web_users/cusers3\000\374U\000\000\220\327\377\206k\177\000\000\000\000\000\000k\177\000\000\000\000\000\000k\177\000\000\020\323\320\326\374U\000\000\260\327\377\206k\177\000\000\000\000\000\000\000\000\000\000f\221\312\325\374U\000\000\340\205\001<k\177\000\000\276[E\326\374U\000\000\001\000\000\000\000\000\000\000\350\023\001<k\177\000\000\200Q\001\000\000\000\000\000\370(\000<k\177", '\000' <repeats 18 times>, "`\330\377\206k\177\000\000\360\221\312\325\374U\000\000\000\000\000\000k\177\000\000@\271\310\326\374U\000\000p\330\377\206k\177\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000"... cpath = {str = 0x7f6b86ffd780 "./web_users/cusers3", length = 19} frm = {str = 0x0, length = 0} #6 0x000055fcd5daa0e5 in mysql_create_table (thd=thd@entry=0x7f6b3c000c58, create_table=create_table@entry=0x7f6b3c0109d8, create_info=create_info@entry=0x7f6b86ffdc80, alter_info=alter_info@entry=0x7f6b86ffdb90) at ./sql/sql_table.cc:4658 err = <optimized out> pos_in_locked_tables = <optimized out> mdl_ticket = <optimized out> ddl_log_state_create = {list = 0x7f6b3c007b88, execute_entry = 0x7f6b3c010768, main_entry = 0x7f6b3c007b88, flags = 4} ddl_log_state_rm = {list = 0x0, execute_entry = 0x0, main_entry = 0x0, flags = 0} create_table_mode = <optimized out> save_thd_create_info_options = <optimized out> is_trans = false result = <optimized out> #7 0x000055fcd5dab9c9 in Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x7f6b3c000c58) at ./sql/sql_table.cc:11778 lex = <optimized out> select_lex = 0x7f6b3c0055f8 first_table = 0x7f6b3c0109d8 link_to_local = 184 create_table = 0x7f6b3c0109d8 select_tables = 0x0 unit = <optimized out> res = <optimized out> used_engine = <optimized out> create_info = {<HA_CREATE_INFO> = {<Table_scope_and_contents_source_st> = {<Table_scope_and_contents_source_pod_st> = {alter_table_convert_to_charset = 0x0, tabledef_version = {str = 0x0, length = 0}, org_tabledef_version = {str = 0x0, length = 0}, connect_string = {str = 0x0, length = 0}, comment = {str = 0x0, length = 0}, alias = {str = 0x7f6b3c0109d0 "cusers3", length = 7}, org_storage_engine_name = {str = 0x0, length = 0}, new_storage_engine_name = {str = 0x7f6bac7b1000 "CONNECT", length = 7}, password = 0x0, tablespace = 0x0, data_file_name = 0x0, index_file_name = 0x0, max_rows = 0, min_rows = 0, auto_increment_value = 0, table_options = 0, avg_row_length = 0, used_fields = 4096, key_block_size = 0, expression_length = 0, field_check_constraints = 0, stats_sample_pages = 0, null_bits = 0, options = 0, merge_insert_method = 0, extra_size = 0, db_type = 0x55fcd7f2e988, row_type = ROW_TYPE_DEFAULT, transactional = HA_CHOICE_UNDEF, storage_media = HA_SM_DEFAULT, page_checksum = HA_CHOICE_UNDEF, option_list = 0x7f6b3c011188, stats_auto_recalc = HA_STATS_AUTO_RECALC_DEFAULT, varchar = false, sequence = false, check_constraint_list = 0x0, option_struct = 0x0, fields_option_struct = 0x0, indexes_option_struct = 0x0, table = 0x0, pos_in_locked_tables = 0x0, merge_list = 0x0, mdl_ticket = 0x0, table_was_deleted = false, seq_create_info = 0x0}, vers_info = {<Table_period_info> = {<Sql_alloc> = {<No data fields>}, name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x55fcd66771b9 "SYSTEM_TIME", length = 11}, <No data fields>}, <No data fields>}, period = {start = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, end = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}}, create_if_not_exists = false, constr = 0x0, unique_keys = 0}, as_row = {start = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, end = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}}, versioned_fields = false, unversioned_fields = false}, period_info = {<Sql_alloc> = {<No data fields>}, name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, period = {start = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, end = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}}, create_if_not_exists = false, constr = 0x0, unique_keys = 0}}, <Schema_specification_st> = {default_table_charset = 0x0, schema_comment = 0x0}, alter_info = 0x7f6b86ffdb90}, <DDL_options_st> = {m_options = DDL_options_st::OPT_NONE}, <No data fields>} alter_info = {drop_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdb90, elements = 0}, <No data fields>}, alter_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdba8, elements = 0}, <No data fields>}, key_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdbc0, elements = 0}, <No data fields>}, alter_rename_key_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdbd8, elements = 0}, <No data fields>}, create_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdbf0, elements = 0}, <No data fields>}, alter_index_ignorability_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdc08, elements = 0}, <No data fields>}, check_constraint_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdc20, elements = 0}, <No data fields>}, flags = 0, partition_flags = 0, keys_onoff = Alter_info::LEAVE_AS_IS, partition_names = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55fcd6d0d310 <end_of_list>, last = 0x7f6b86ffdc50, elements = 0}, <No data fields>}, num_parts = 0, requested_algorithm = Alter_info::ALTER_TABLE_ALGORITHM_NONE, requested_lock = Alter_info::ALTER_TABLE_LOCK_DEFAULT} #8 0x000055fcd5d06cce in mysql_execute_command (thd=0x7f6b3c000c58, is_called_from_prepared_stmt=<optimized out>) at ./sql/sql_parse.cc:5997 multi_delete_error = <optimized out> wsrep_error_label = <optimized out> error = <optimized out> res = 0 up_result = 0 lex = 0x7f6b3c004d38 select_lex = 0x7f6b3c0055f8 first_table = 0x7f6b3c0109d8 all_tables = 0x7f6b3c0109d8 unit = 0x7f6b3c004e00 have_table_map_for_update = false rpl_filter = <optimized out> ots = {ctx = 0x7f6b3c0049e8, traceable = false} trace_command = {<Json_writer_struct> = {my_writer = <optimized out>, context = {writer = <optimized out>}, closed = false}, <No data fields>} trace_command_steps = {<Json_writer_struct> = {my_writer = 0x0, context = {writer = <optimized out>}, closed = false}, <No data fields>} orig_binlog_format = BINLOG_FORMAT_MIXED orig_current_stmt_binlog_format = BINLOG_FORMAT_STMT #9 0x000055fcd5cf7037 in mysql_parse (thd=0x7f6b3c000c58, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at ./sql/sql_parse.cc:8030 found_semicolon = <optimized out> error = <optimized out> lex = 0x7f6b3c004d38 err = <optimized out> #10 0x000055fcd5d02fb5 in dispatch_command (command=COM_QUERY, thd=0x7f6b3c000c58, packet=<optimized out>, packet_length=<optimized out>, blocking=<optimized out>) at ./sql/sql_class.h:234 packet_end = 0x7f6b3c0108b4 "" parser_state = {m_lip = {lookahead_token = -1, lookahead_yylval = 0x0, m_thd = 0x7f6b3c000c58, m_ptr = 0x7f6b3c0108b5 "\t", m_tok_start = 0x7f6b3c0108b5 "\t", m_tok_end = 0x7f6b3c0108b5 "\t", m_end_of_query = 0x7f6b3c0108b4 "", m_tok_start_prev = 0x7f6b3c0108b4 "", m_buf = 0x7f6b3c010850 "create table cusers3 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json", m_buf_length = 100, m_echo = true, m_echo_saved = false, m_cpp_buf = 0x7f6b3c010910 "create table cusers3 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json", m_cpp_ptr = 0x7f6b3c010974 "", m_cpp_tok_start = 0x7f6b3c010974 "", m_cpp_tok_start_prev = 0x7f6b3c010974 "", m_cpp_tok_end = 0x7f6b3c010974 "", m_body_utf8 = 0x0, m_body_utf8_ptr = 0x0, m_cpp_utf8_processed_ptr = 0x0, next_state = MY_LEX_END, found_semicolon = 0x0, ignore_space = false, stmt_prepare_mode = false, multi_statements = true, yylineno = 1, m_digest = 0x0, in_comment = NO_COMMENT, in_comment_saved = NO_COMMENT, m_cpp_text_start = 0x7f6b3c010965 "table_type=json", m_cpp_text_end = 0x7f6b3c01096f "=json", m_underscore_cs = 0x0}, m_yacc = {yacc_yyss = 0x0, yacc_yyvs = 0x0, m_set_signal_info = {m_item = {0x0 <repeats 12 times>}}, m_lock_type = TL_READ_DEFAULT, m_mdl_type = MDL_SHARED_READ}, m_digest_psi = 0x0} net = 0x7f6b3c000ee8 error = false do_end_of_statement = true drop_more_results = false __FUNCTION__ = "dispatch_command" res = <optimized out> #11 0x000055fcd5d04ea8 in do_command (thd=0x7f6b3c000c58, blocking=blocking@entry=true) at ./sql/sql_parse.cc:1404 return_value = <optimized out> packet = 0x7f6b3c0084b8 "\003create table cusers3 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json" packet_length = <optimized out> net = 0x7f6b3c000ee8 command = COM_QUERY __FUNCTION__ = "do_command" #12 0x000055fcd5e143d7 in do_handle_one_connection (connect=<optimized out>, put_in_cache=true) at ./sql/sql_connect.cc:1418 create_user = true thr_create_utime = <optimized out> thd = 0x7f6b3c000c58 #13 0x000055fcd5e1472d in handle_one_connection (arg=arg@entry=0x55fcd83a52f8) at ./sql/sql_connect.cc:1312 connect = 0x55fcd83a52f8 #14 0x000055fcd617241d in pfs_spawn_thread (arg=0x55fcd831fd98) at ./storage/perfschema/pfs.cc:2201 typed_arg = 0x55fcd831fd98 user_arg = 0x55fcd83a52f8 user_start_routine = 0x55fcd5e146d0 <handle_one_connection(void*)> pfs = <optimized out> klass = <optimized out> #15 0x00007f6bad05b609 in start_thread (arg=<optimized out>) at pthread_create.c:477 ret = <optimized out> pd = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140099803150080, -2772519655998606122, 140722899554222, 140722899554223, 94544424106720, 140099803148032, 2833052169746920662, 2833135820276774102}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 #16 0x00007f6bacc49293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 json file retreived $ podman exec -ti 6a1184cd5306 gosu mysql bash mysql@6a1184cd5306:/$ cd /var/lib/mysql/ mysql@6a1184cd5306:/var/lib/mysql$ ls aria_log.00000001 aria_log_control ddl_recovery.log ib_buffer_pool ib_logfile0 ibdata1 ibtmp1 multi-master.info mysql performance_schema sys web_users mysql@6a1184cd5306:/var/lib/mysql$ cd web_users/ mysql@6a1184cd5306:/var/lib/mysql/web_users$ ls cusers3.json db.opt mysql@6a1184cd5306:/var/lib/mysql/web_users$ ls -la total 20 drwx------. 2 mysql mysql 4096 Sep 30 03:05 . drwxr-xr-x. 6 mysql mysql 4096 Sep 30 03:02 .. -rw-rw----. 1 mysql mysql 5645 Sep 30 03:05 cusers3.json -rw-rw----. 1 mysql mysql 67 Sep 30 03:02 db.opt (gdb) info locals filename = '\000' <repeats 80 times>, "web_users/cusers3.json", '\000' <repeats 314 times>... reclg = 0 mgo = false G = 0x0 (gdb) p topt $1 = (PTOS) 0x7f6b3c018750 (gdb) p *topt $2 = {type = 0x7f6b3c018820 "json", filename = 0x0, optname = 0x0, tabname = 0x0, tablist = 0x0, dbname = 0x0, separator = 0x0, qchar = 0x0, module = 0x0, subtype = 0x7f6b2bfff030 "cusers3.json", catfunc = 0x0, srcdef = 0x0, colist = 0x0, filter = 0x0, oplist = 0x0, data_charset = 0x0, http = 0x7f6b3c018828 "http://jsonplaceholder.typicode.com/users", uri = 0x0, lrecl = 0, elements = 0, multiple = 0, header = 0, quoted = 18446744073709551615, ending = 18446744073709551615, compressed = 0, mapped = false, huge = false, split = false, readonly = false, sepindex = false, zipped = false} (gdb) p lvl $3 = 5 (gdb) p sz $4 = 1024 (gdb) p limit $5 = 50 (gdb) p tdp $6 = (JSONDEF *) 0x7f6b2bfff1c8 (gdb) p *tdp $7 = (JSONDEF) {<DOSDEF> = {<TABDEF> = {<RELDEF> = {<BLOCK> = {_vptr.BLOCK = 0x7f6bac7f4068 <vtable for JSONDEF+16>}, Next = 0x0, Name = 0x0, Database = 0x0, To_Cols = 0x0, Cat = 0x0, Hc = 0x0}, Schema = 0x0, Desc = 0x0, Recfm = RECFM_VAR, Catfunc = 1, Card = 0, Elemt = 0, Sort = 0, Multiple = 0, Degree = 0, Pseudo = 3, Read_Only = false, m_data_charset = 0x0, csname = 0x0}, Fn = 0x0, Ofn = 0x0, Entry = 0x0, Pwd = 0x0, To_Indx = 0x0, Mapped = false, Zipped = false, Mulentries = false, Append = false, Padded = false, Huge = false, Accept = false, Eof = false, To_Pos = 0x0, Optimized = 0, AllocBlks = 0, Compressed = 0, Lrecl = 0, AvgLen = 0, Block = 0, Last = 0, Blksize = 0, Maxerr = 0, ReadMode = 0, Ending = 0, Teds = 0 '\000'}, Jmode = MODE_OBJECT, Objname = 0x0, Xcol = 0x0, Limit = 1, Pretty = 2, Base = 0, Strict = false, Sep = 46 '.', Uri = 0x0, Collname = 0x0, Options = 0x0, Filter = 0x0, Driver = 0x0, Pipe = false, Version = 0, Wrapname = 0x0} (gdb) c back to mariadb client MariaDB [web_users]> show create table cusers3; | cusers3 | CREATE TABLE `cusers3` ( `id` int(2) NOT NULL `JPATH`='$.id', `name` char(24) NOT NULL `JPATH`='$.name', `username` char(16) NOT NULL `JPATH`='$.username', `email` char(25) NOT NULL `JPATH`='$.email', `address_street` char(17) NOT NULL `JPATH`='$.address.street', `address_suite` char(9) NOT NULL `JPATH`='$.address.suite', `address_city` char(14) NOT NULL `JPATH`='$.address.city', `address_zipcode` char(10) NOT NULL `JPATH`='$.address.zipcode', `address_geo_lat` char(8) NOT NULL `JPATH`='$.address.geo.lat', `address_geo_lng` char(9) NOT NULL `JPATH`='$.address.geo.lng', `phone` char(21) NOT NULL `JPATH`='$.phone', `website` char(13) NOT NULL `JPATH`='$.website', `company_name` char(18) NOT NULL `JPATH`='$.company.name', `company_catchPhrase` char(40) NOT NULL `JPATH`='$.company.catchPhrase', `company_bs` char(36) NOT NULL `JPATH`='$.company.bs' ) ENGINE=CONNECT DEFAULT CHARSET=utf8mb4 `TABLE_TYPE`='json' `HTTP`='http://jsonplaceholder.typicode.com/users' | (under debugger) MariaDB [web_users] > create table cusers5 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json; Query OK, 0 rows affected, 1 warning (15.017 sec) (cleared breakpoint and continued} MariaDB [web_users] > create or replace table cusers5 engine=connect http='http://jsonplaceholder.typicode.com/users' table_type=json; ERROR 1105 (HY000): Can only retrieve columns from object rows   So in short, there is a race condition. Note: gdb client is manually compiled to include this patchhttps://sourceware.org/pipermail/gdb-patches/2021-August/181718.html so gdb symbols are retreived from "remote" container

            People

              danblack Daniel Black
              anel Anel Husakovic
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.