@@ -136,7 +136,7 @@ char* convertObjToStr(PyObject *string) {
136136%#if PY_MAJOR_VERSION < 3
137137 return PyString_AsString (string);
138138%#else
139- return PyUnicode_AsUTF8 (string);
139+ return ( char *) PyUnicode_AsUTF8 (string);
140140%#endif
141141}
142142}
@@ -1466,13 +1466,13 @@ static bool getRowFields(GSRow* row, int columnCount, GSType* typeList, bool tim
14661466 return false ;
14671467 }
14681468 if (longValue) {
1469- PyList_SetItem (outList, i, PyLong_FromLong (longValue));
1469+ PyList_SetItem (outList, i, SWIG_From_dec ( long long ) (longValue));
14701470 } else if (checkNullField (row, i)) {
14711471 // NULL value
14721472 Py_INCREF (Py_None);
14731473 PyList_SetItem (outList, i, Py_None);
14741474 } else {
1475- PyList_SetItem (outList, i, PyLong_FromLong (longValue));
1475+ PyList_SetItem (outList, i, SWIG_From_dec ( long long ) (longValue));
14761476 }
14771477 break ;
14781478 }
@@ -1806,7 +1806,7 @@ static bool getRowFields(GSRow* row, int columnCount, GSType* typeList, bool tim
18061806 return false ;
18071807 }
18081808 for (int j = 0 ; j < size; j++) {
1809- PyList_SetItem (list, j, PyLong_FromLong (longArr[j]));
1809+ PyList_SetItem (list, j, SWIG_From_dec ( long long ) (longArr[j]));
18101810 }
18111811 if (size) {
18121812 PyList_SetItem (outList, i, list);
@@ -2265,12 +2265,7 @@ static bool getRowFields(GSRow* row, int columnCount, GSType* typeList, bool tim
22652265%attribute(griddb::ExpirationInfo, int , division_count, get_division_count, set_division_count);
22662266
22672267// Attribute ContainerInfo::columnInfoList
2268- %extend griddb::ContainerInfo{
2269- %pythoncode %{
2270- __swig_getmethods__[" column_info_list" ] = get_column_info_list
2271- __swig_setmethods__[" column_info_list" ] = set_column_info_list
2272- %}
2273- };
2268+ %attributeval(griddb::ContainerInfo, ColumnInfoList, column_info_list, get_column_info_list, set_column_info_list);
22742269
22752270/* *
22762271 * Typemap for Container::multi_put
@@ -2335,32 +2330,29 @@ static bool getRowFields(GSRow* row, int columnCount, GSType* typeList, bool tim
23352330%typemap(doc, name = " row_list" ) (GSRow** listRowdata, int rowCount) " list[list[object]]" ;
23362331
23372332// attribute ContainerInfo::column_info_list
2338- %typemap(in, fragment = " SWIG_AsCharPtrAndSize" , fragment = " cleanString" ) (ColumnInfoList columnInfoList ) (int * alloc = NULL ){
2333+ %typemap(in, fragment = " SWIG_AsCharPtrAndSize" , fragment = " cleanString" ) (ColumnInfoList* ) (int * alloc = NULL ){
23392334
23402335 if (!PyList_Check ($input)) {
23412336 PyErr_SetString (PyExc_ValueError, " Expected a List" );
23422337 SWIG_fail;
23432338 }
2344- int res;
2345- char * v = 0 ;
2346- bool vbool;
2347- size_t size = 0 ;
2348- size = (size_t )PyInt_AsLong (PyLong_FromSsize_t (PyList_Size ($input)));
2349- $1 .columnInfo = NULL ;
2350- $1 .size = size;
2351- size_t stringSize = 0 ;
2339+
2340+ $1 = NULL ;
2341+ size_t size = (size_t )PyInt_AsLong (PyLong_FromSsize_t (PyList_Size ($input)));
23522342 if (size) {
23532343 try {
2354- alloc = new int [size]();
2355- $1 .columnInfo = new GSColumnInfo[size]();
2344+ $1 = new ColumnInfoList ();
2345+ alloc = new int [size]();
2346+ $1 ->columnInfo = new GSColumnInfo[size]();
23562347 } catch (bad_alloc& ba) {
23572348 PyErr_SetString (PyExc_ValueError, " Memory allocation for set column_info_list is error" );
23582349 SWIG_fail;
23592350 }
2351+ $1 ->size = size;
23602352 PyObject* columInfoList;
23612353 int option;
23622354 for (int i = 0 ; i < size; i++) {
2363- $1 . columnInfo [i] = GS_COLUMN_INFO_INITIALIZER;
2355+ $1 -> columnInfo [i] = GS_COLUMN_INFO_INITIALIZER;
23642356 columInfoList = PyList_GetItem ($input, i);
23652357 if (!PyList_Check (columInfoList)) {
23662358 PyErr_SetString (PyExc_ValueError, " Expected a List" );
@@ -2369,55 +2361,62 @@ static bool getRowFields(GSRow* row, int columnCount, GSType* typeList, bool tim
23692361 size_t sizeColumn = (size_t )PyInt_AsLong (PyLong_FromSsize_t (PyList_Size (columInfoList)));
23702362 if (sizeColumn == 3 ) {
23712363 option = PyInt_AsLong (PyList_GetItem (columInfoList, 2 ));
2372- $1 . columnInfo [i].options = option;
2364+ $1 -> columnInfo [i].options = option;
23732365 if (option != GS_TYPE_OPTION_NULLABLE && option != GS_TYPE_OPTION_NOT_NULL) {
23742366 PyErr_SetString (PyExc_ValueError, " Invalid value for column option" );
23752367 SWIG_fail;
23762368 }
23772369 } else if (sizeColumn == 2 ) {
2378- if (i == 0 ) {
2379- $ 1 . columnInfo [i].options = GS_TYPE_OPTION_NOT_NULL;
2380- } else {
2381- $ 1 . columnInfo [i].options = GS_TYPE_OPTION_NULLABLE;
2382- }
2370+ if (i == 0 ) {
2371+ $ 1 -> columnInfo [i].options = GS_TYPE_OPTION_NOT_NULL;
2372+ } else {
2373+ $ 1 -> columnInfo [i].options = GS_TYPE_OPTION_NULLABLE;
2374+ }
23832375 } else {
23842376 PyErr_SetString (PyExc_ValueError, " Invalid element number for List" );
23852377 SWIG_fail;
23862378 }
23872379
2380+ char * v = 0 ;
2381+ size_t stringSize = 0 ;
2382+ int res;
23882383 res = SWIG_AsCharPtrAndSize (PyList_GetItem (columInfoList, 0 ), &v, &stringSize, &alloc[i]);
23892384 if (!SWIG_IsOK (res)) {
23902385 PyErr_SetString (PyExc_ValueError, " Can't convert field to string" );
23912386 SWIG_fail;
23922387 }
2393- $1 . columnInfo [i].name = v;
2394- $1 . columnInfo [i].type = PyInt_AsLong (PyList_GetItem (columInfoList, 1 ));
2388+ $1 -> columnInfo [i].name = v;
2389+ $1 -> columnInfo [i].type = PyInt_AsLong (PyList_GetItem (columInfoList, 1 ));
23952390 }
23962391 }
23972392}
23982393
2399- %typemap(freearg, fragment = " cleanString" ) (ColumnInfoList columnInfoList ) {
2394+ %typemap(freearg, fragment = " cleanString" ) (ColumnInfoList* ) {
24002395 size_t size = 0 ;
2401- if ($1 .size ) {
2402- size = $1 .size ;
2403- }
2404- if ($1 .columnInfo != NULL ) {
2405- if (alloc$argnum) {
2406- for (int i = 0 ; i < size; i++) {
2407- if ($1 .columnInfo [i].name ) {
2408- cleanString ($1 .columnInfo [i].name , alloc$argnum[i]);
2396+ if ($1 ) {
2397+ if ($1 ->size ) {
2398+ size = $1 ->size ;
2399+ }
2400+ if ($1 ->columnInfo != NULL ) {
2401+ if (alloc$argnum) {
2402+ for (int i = 0 ; i < size; i++) {
2403+ if ($1 ->columnInfo [i].name ) {
2404+ cleanString ($1 ->columnInfo [i].name , alloc$argnum[i]);
2405+ }
24092406 }
24102407 }
2408+ delete [] $1 ->columnInfo ;
24112409 }
2412- delete [] $1 .columnInfo ;
2410+
2411+ delete $1 ;
24132412 }
24142413 if (alloc$argnum) {
24152414 delete [] alloc$argnum;
24162415 }
24172416}
24182417
2419- %typemap(out, fragment = " convertStrToObj" ) (ColumnInfoList) {
2420- ColumnInfoList data = $1 ;
2418+ %typemap(out, fragment = " convertStrToObj" ) (ColumnInfoList* ) {
2419+ ColumnInfoList data = * $1 ;
24212420 size_t size = data.size ;
24222421 $result = PyList_New (size);
24232422 if ($result == NULL ) {
0 commit comments