MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / load_metadata_columns

Function load_metadata_columns

modules/db_berkeley/bdb_lib.c:768–859  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

766}
767
768int load_metadata_columns(table_p _tp)
769{
770 int ret,n,len;
771 char dbuf[MAX_ROW_SIZE];
772 char *tmp;
773 char *s = NULL;
774 char cn[64], ct[16];
775 DB *db = NULL;
776 DBT key, data;
777 column_p col;
778 ret = n = len = 0;
779
780 if(!_tp || !_tp->db)
781 return -1;
782
783 if(_tp->ncols!=0)
784 return 0;
785
786 db = _tp->db;
787 memset(&key, 0, sizeof(DBT));
788 memset(&data, 0, sizeof(DBT));
789 memset(dbuf, 0, MAX_ROW_SIZE);
790
791 key.data = METADATA_COLUMNS;
792 key.size = strlen(METADATA_COLUMNS);
793
794 /*memory for the result*/
795 data.data = dbuf;
796 data.ulen = MAX_ROW_SIZE;
797 data.flags = DB_DBT_USERMEM;
798
799 if ((ret = db->get(db, NULL, &key, &data, 0)) != 0)
800 {
801 db->err(db, ret, "load_metadata_columns DB->get failed");
802 LM_ERR("FAILED to find METADATA_COLUMNS in DB \n");
803 return -1;
804 }
805
806
807 /* eg: dbuf = "table_name(str) table_version(int)" */
808
809 LM_DBG("Found: [%s]\n",dbuf);
810
811 tmp = dbuf;
812 s = strsep(&tmp, " ");
813 while(s!=NULL && n<MAX_NUM_COLS)
814 {
815 /* eg: meta[0]=table_name meta[1]=str */
816 sscanf(s,"%20[^(](%10[^)])[^\n]", cn, ct);
817
818 /* create column*/
819 col = (column_p) pkg_malloc(sizeof(column_t));
820 if(!col)
821 { LM_ERR("out of private memory \n");
822 return -1;
823 }
824
825 /* set name*/

Callers 1

bdblib_create_tableFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected