@@ -923,6 +923,9 @@ void Connection::Async_AfterExecute(uv_work_t *req)
923923 result->Set (String::New (" rows" ), rowArray, v8::ReadOnly);
924924 result->Set (String::New (" outBinds" ),Undefined ());
925925 result->Set (String::New (" rowsAffected" ), Undefined ());
926+ result->Set (String::New (" metaData" ), Connection::GetMetaData (
927+ executeBaton->columnNames ,
928+ executeBaton->numCols ));
926929 break ;
927930 case DpiStmtBegin :
928931 case DpiStmtDeclare :
@@ -931,13 +934,15 @@ void Connection::Async_AfterExecute(uv_work_t *req)
931934 result->Set (String::New (" outBinds" ),Connection::GetOutBinds (executeBaton),
932935 v8::ReadOnly);
933936 result->Set (String::New (" rows" ), Undefined ());
937+ result->Set (String::New (" metaData" ), Undefined ());
934938 break ;
935939 default :
936940 result->Set (String::New (" rowsAffected" ),
937941 Integer::New ((unsigned int ) executeBaton->rowsAffected ),
938942 v8::ReadOnly);
939943 result->Set (String::New (" outBinds" ),Undefined ());
940944 result->Set (String::New (" rows" ), Undefined ());
945+ result->Set (String::New (" metaData" ), Undefined ());
941946 break ;
942947 }
943948 argv[1 ] = result;
@@ -953,6 +958,35 @@ void Connection::Async_AfterExecute(uv_work_t *req)
953958 }
954959}
955960
961+ /* ****************************************************************************/
962+ /*
963+ DESCRIPTION
964+ Method to populate Metadata array
965+
966+ PARAMETERS:
967+ columnNames - Column Names
968+ numCols - number of columns
969+
970+ RETURNS:
971+ MetaData Handle
972+ */
973+ Handle<Value> Connection::GetMetaData (std::string* columnNames,
974+ unsigned int numCols )
975+ {
976+ HandleScope scope;
977+ Handle<Array> metaArray = v8::Array::New (numCols);
978+ for (unsigned int i=0 ; i < numCols ; i++)
979+ {
980+ Local<Object> column = Object::New ();
981+ column->Set (String::New (" name" ),
982+ String::New (columnNames[i].c_str (),
983+ (int ) columnNames[i].length ())
984+ );
985+ metaArray->Set (i, column);
986+ }
987+ return scope.Close (metaArray);
988+ }
989+
956990/* ****************************************************************************/
957991/*
958992 DESCRIPTION
0 commit comments