Sachverhalt: A. Die Staatsanwaltschaft des Kantons Solothurn führt gegen X._ ein Strafverfahren wegen schwerer Betäubungsmittelde-likte. Laut Anklageschrift vom 20. November 2009 soll er, zusammen mit seiner damaligen Ehefrau und weiteren Mittätern, zwischen dem 30. Dezember 2006 und dem 7. Juli 2007 unter anderem drei Mal je rund 3 kg Kokaingemisch von Amsterdam durch die Schweiz nach Italien transportiert sowie ca. 1 kg Kokaingemisch und rund 200 kg Streckmittel für Heroin in die Schweiz eingeführt haben. Beim Versuch, weitere 4,5 kg Kokaingemisch durch die Schweiz zu transportieren, wurde X._ am 8. Juli 2007 am Zollübergang Basel-Weil verhaftet. Er befindet sich seit dem 11. Juli 2007 in Untersuchungshaft und seit dem 18. Oktober 2007 im vorzeitigen Strafvollzug. Am 20. November 2009 erhob die Staatsanwaltschaft beim Richteramt Olten-Gösgen Anklage gegen X._ und beantragte gleichzeitig, den Angeklagten in Sicherheitshaft zu versetzen. X._ beantragte, ihn aus dem vorzeitigen Strafvollzug zu entlassen. Am 26. November 2009 hiess das Haftgericht des Kantons Solothurn den Antrag der Staatsanwaltschaft gut und ordnete gegen X._ Sicherheitshaft an. Dessen Entlassungsgesuch wies es ab. B. Mit Beschwerde in Strafsachen beantragt X._, diesen Entscheid des Haftgerichts aufzuheben und ihn umgehend aus der Haft zu entlassen. Ausserdem ersucht er um unentgeltliche Rechtspflege und Verbeiständung. Das Haftgericht verzichtet auf Vernehmlassung. Die Staatsanwaltschaft beantragt, die Beschwerde abzuweisen. In seiner Replik hält X._ an der Beschwerde fest. 