← Back to team overview

maria-developers team mailing list archive

Questions regarding GSoC 2016 and Import / Export

 

Hello,

I am a second year student currently attending University Politehnica of
Bucharest and I am interested in contributing to MariaDB during this year's
Google Summer of Code.

I have looked at the ideas you published in the Knowledge Base [1] and two
projects caught my attention. The first one is related to the import and
export process related to dynamic columns [2] and the second one is related
to the GIS enhancements [3].

I am willing to implement both of them, but I am not sure whether the time
will allow me properly implement both of them. I cannot estimate how much
effort do these projects require as I am still trying to become acquainted
with the code base. I hope I am not underestimating the projects and some
guidance from one of the mentors (Oleksandr Byelkin, Georg Richter or
Alexey Botchkov - Holyfoot) is certainly welcome.

I will focus on "Import and export popular data formats from and to dynamic
columns" and as soon as I am done with this one, hopefully I will be able
to work on GIS enhancements as well.

Before continuing, I would like to clarify some aspects related to these
projects.

Import and export popular data formats from and to dynamic columns:

- Can be split in four main tasks:

    a) adding support for arrays (vectors) in dynamic columns. Currently,
dynamic columns only store dictionaries (maps);

    b) implement a library that can import (parse) and export (build in a
specific format) data to and from dynamic columns;

    c) provide interface to access to the new import and export mechanism;

    d) provide unit tests for the new features.

- The second part (b) of the project is mostly standalone and requires
little edits to the project and the third part (c) will be mostly shared by
the server and the C connector.

- The outcome of (b) is going to be a minimal parsing and building library
for various formats.

- Some of the formats that I plan to support are: JSON, XML, CSV (maybe XLS
too?), PHP Array, YAML, SQL (export as INSERT INTO statement?), etc. One of
the key aspects I have to keep in mind when designing the library is to
provide a extensible interface to quickly implement new formats in the
future.

- Probably, most of my work will be located in:

    - ./server/sql/item_*.(cc|h) - implement user defined functions
    - ./server/mysys/ma_dyncol.c - provide interface for user defined
functions
    - ./server/include/ma_dyncol.h
    - ./mariadb-connector-c/libmariadb/mariadb_dyncol.c - provide interface
in C Connector
    - ./mariadb-connector-c/include/mariadb_dyncol.h

GIS enhancements:

- This project is based on extending the current functionality related to
GIS. I am not very familiar with GIS and I still have to do more research
based on documents [4], [5] and [6], but the biggest part of the project
consists in defining user functions for handling GIS.

- I found this compliance test suite [7] for PostGIS that may come in handy.

Also, I have a few other questions related to how should I proceed:

- I have already read the introductory developers guide [8], the
contributing guidelines [9] and will submit the MariaDB Contributor
Agreement [10] as soon as possible. Is there anything else I should do
before getting started?

- I found no template for Google Summer of Code applications. Is there
anything in particular that mentors would like to see? I was thinking of
organizing my application in multiple sections, some of the most important
being: Synopsis, Benefits to the Users, Project Details, Deliverables,
Project Schedule and my resume. I believe that I will receive more feedback
related after I will have submitted my application.

- Most issues already have an assignee. Is it fine if I try and send pull
requests for some of those bugs?

I could not decide between whether I should send this mail to discuss or
developers mailing list. Hopefully, I chose the right one.

I am sorry for my long email and thank you for attention. I am looking for
feedback, so please do not hesitate to send me any suggestion you might
have.

[1] https://mariadb.com/kb/en/mariadb/google-summer-of-code-2016/
[2] https://jira.mariadb.org/browse/CONC-125
[3] https://jira.mariadb.org/browse/MDEV-5813

[4] http://www.opengeospatial.org/standards/sfs
[5] http://portal.opengeospatial.org/files/?artifact_id=25354
[6] http://www.opengeospatial.org/compliance/
[7] https://svn.osgeo.org/postgis/trunk/extras/ogc_test_suite/README

[8] https://mariadb.org/get-involved/getting-started-for-developers/
[9] https://mariadb.com/kb/en/mariadb/contributing-code/
[10] https://mariadb.com/kb/en/mariadb/mca/

Best regards,
Dan Ungureanu

Follow ups